
Programmazione x NOVIZI si ma con cosa ??
42 messaggi
• Pagina 4 di 5 • 1, 2, 3, 4, 5
1
voti
Si ma se prendi per esempio i PIC, prima di cambiare di banco di memoria in mpasm, devi prima studiarti il perché, quindi l'architettura. Questo è il succo del discorso, credo.


1
voti
Già ma una volta che lo sai se poi non hai modo di provare a farlo...te lo scordi, e in fretta. Prendiamo due argomenti di base, gli interrupt ed i timer. Si potrebbe studiare per qualche ora come funzionano in generale. E va bene, poi? Bho. Letteralmente, "bho, ok".
Invece avendo già modo di sperimentare si può:
- Studiare in generale che cos'è un interrupt e che cos'è un timer, dal proprio libro sui microcontrollori.
- Aprire il datasheet del micro sulla propria scrivania, leggere che tipi di interrupt può gestire il proprio micro, come funzionano e come impostarli. Poi leggere che timer ha e quali registri si utilizzano per programmarli.
Così si può fare subito il confronto tra il datasheet di un micro reale e la teoria, scoprendo magari delle incongruenze o delle limitazioni.
- Provare a programmare il micro per generare un interrupt col timer. Ci si sbaglia una tonnellata di volte e ne si è ben consci, perché non lo si vede funzionare. Punto: è sulla nostra scrivania e non funziona. Perché? Si va a caccia del problema. Quindi si rivede la teoria, si rivede il datasheet, si ripassa tutto, spinti dal fatto che non funziona una mazza, non da velleità di studio.
- Una volta risolto il problema ci si ricorderà di un caso reale, specifico, correlato allo studio teorico compiuto. La lezione insegna più cose: nozioni sui due concetti, modi per cercare e risolvere il problema, familiarità coi datasheet e con un micro reale.
Ripetere con un'altra periferica o applicazione, oppure complicare l'applicazione corrente.
Invece avendo già modo di sperimentare si può:
- Studiare in generale che cos'è un interrupt e che cos'è un timer, dal proprio libro sui microcontrollori.
- Aprire il datasheet del micro sulla propria scrivania, leggere che tipi di interrupt può gestire il proprio micro, come funzionano e come impostarli. Poi leggere che timer ha e quali registri si utilizzano per programmarli.
Così si può fare subito il confronto tra il datasheet di un micro reale e la teoria, scoprendo magari delle incongruenze o delle limitazioni.
- Provare a programmare il micro per generare un interrupt col timer. Ci si sbaglia una tonnellata di volte e ne si è ben consci, perché non lo si vede funzionare. Punto: è sulla nostra scrivania e non funziona. Perché? Si va a caccia del problema. Quindi si rivede la teoria, si rivede il datasheet, si ripassa tutto, spinti dal fatto che non funziona una mazza, non da velleità di studio.
- Una volta risolto il problema ci si ricorderà di un caso reale, specifico, correlato allo studio teorico compiuto. La lezione insegna più cose: nozioni sui due concetti, modi per cercare e risolvere il problema, familiarità coi datasheet e con un micro reale.
Ripetere con un'altra periferica o applicazione, oppure complicare l'applicazione corrente.
I don't fight weather - Woodrow W. Smith
1
voti
Certo
Fedhman ma io non ho scritto che bisogna studiarsi il libro intero e poi praticare.
Se stai studiando il C e ti studi il libro senza praticare, succede poi quello che dici.
Mi è successo quando studiai il C per conto mio senza scrivere codice: 200 pagine di K&R e poi ? In panne. Dovetti riprendere il libro con tutto quello che non mi ricordavo.
Ma non puoi per esempio metterti a programmare in Assembly senza avere una idea generale dell'architettura, a cominciare dai registri, quali sono e a cosa servono e come usarli, etc.. Io mi riferisco a questo.

Se stai studiando il C e ti studi il libro senza praticare, succede poi quello che dici.
Mi è successo quando studiai il C per conto mio senza scrivere codice: 200 pagine di K&R e poi ? In panne. Dovetti riprendere il libro con tutto quello che non mi ricordavo.
Ma non puoi per esempio metterti a programmare in Assembly senza avere una idea generale dell'architettura, a cominciare dai registri, quali sono e a cosa servono e come usarli, etc.. Io mi riferisco a questo.

0
voti
simo85 ha scritto:Infatti è quello che si fa (o si dovrebbe fare) in qualsiasi corso di microprocessori o microcontrollori.
E non si parte nemmeno dal C, ma con Assembly. Almeno per me è stato così.
Anche nel corso che ho fatto io si trattava l'assembly... e non potrebbe essere altrimenti, in un corso che dovrebbe puntare a fornire una conoscenza "completa" dell'argomento.
-

rugweri
5.948 2 8 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 1366
- Iscritto il: 25 nov 2016, 18:46
1
voti
Riguardo all'assembly ricordo un commento di un bravissimo professore del poli che suonava come:
L'assembly ve lo facciamo vedere, e sappiate che ci sono casi in cui sarete obbligati a usarlo. Ma non fatelo sempre, neppure spesso, cercate di non farlo mai se non quand'è proprio necessario. Ci sono ditte che sono fallite perché i loro programmatori programmavano in assembly anziché in C.
Non stava scherzando. Ormai i tempi sono cambiati, ben venga l'idea di dargli un'occhiata in quanto vicinissimo all'hardware ma dovendo scegliere come formarsi non è realistica l'idea di privilegiarlo rispetto al C, neppure per "studiare più da vicino l'hardware". Meglio studiare seriamente l'assembly in seguito, se e quando le proprie applicazioni saranno così pesanti da doverne richiedere un uso serio e soprattutto motivato.
Capita anche di doverne inserire piccoli stralci all'interno di programmi C, alcuni compilatori lo permettono. Chi è proprio obbligato ad usarlo in genere fa così (conosco chi è costretto a farlo: neanche morti si mettono a scrivere tutto in assembly, è follia).
I don't fight weather - Woodrow W. Smith
0
voti
simo85 ha scritto:No vabbé non è che io vivo negli anni 60/70 e programmo ancora in asm. Ci mancherebbe.
Immaginavo
I don't fight weather - Woodrow W. Smith
1
voti
2
voti
Miei ricordi di quando ero giovane:
i minicalcolatori a 16bit (come i microcontrollori di oggi) avevano al massimo 32kword di memoria a nuclei.
Quando durante il debug trovavi un errore del programma , e non bastava correggere una istruzione e non potevi riassemblare, modificavi il programma introducendo un jump a un indirizzo libero della memoria, scrivevi in ottale l'istruzione o le istruzioni da aggiungere, e poi rifacevi un jump alla prima istruzione utile del programma originale.
Il calcolatore aveva 16 tasti per impostare la word e i tasti address e load per posizionarsi all'indirizzo
e caricare il dato. Poi avevano due righe di 16 LED ciascuno per indicare l'indirizzo e il dato.
Si poteva fare avanzare il programa una istruzione/passo alla volta e visualizzare sui LED cosa capitava.

i minicalcolatori a 16bit (come i microcontrollori di oggi) avevano al massimo 32kword di memoria a nuclei.
Quando durante il debug trovavi un errore del programma , e non bastava correggere una istruzione e non potevi riassemblare, modificavi il programma introducendo un jump a un indirizzo libero della memoria, scrivevi in ottale l'istruzione o le istruzioni da aggiungere, e poi rifacevi un jump alla prima istruzione utile del programma originale.
Il calcolatore aveva 16 tasti per impostare la word e i tasti address e load per posizionarsi all'indirizzo
e caricare il dato. Poi avevano due righe di 16 LED ciascuno per indicare l'indirizzo e il dato.
Si poteva fare avanzare il programa una istruzione/passo alla volta e visualizzare sui LED cosa capitava.
1
voti
MarcoD ha scritto:Si poteva fare avanzare il programa una istruzione/passo alla volta e visualizzare sui LED cosa capitava.
http://www.megaprocessor.com/
I don't fight weather - Woodrow W. Smith
42 messaggi
• Pagina 4 di 5 • 1, 2, 3, 4, 5
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



