Pagina 4 di 5

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 13:29
da simo85
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.

O_/

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 13:42
da Fedhman
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.

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 13:50
da simo85
Certo Foto UtenteFedhman 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.

O_/

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 14:13
da wruggeri
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.

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 19:11
da Fedhman
Foto Utentesimo85 avevo compreso, ci tenevo a precisare per chi si approccia all'argomento per la prima volta e magari pensa di dover "completare gli studi" prima di poter toccare un microcontrollore. È un approccio controproducente.

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).

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 19:22
da simo85
No vabbé non è che io vivo negli anni 60/70 e programmo ancora in asm. Ci mancherebbe. :mrgreen:

O_/

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 19:30
da Fedhman
simo85 ha scritto:No vabbé non è che io vivo negli anni 60/70 e programmo ancora in asm. Ci mancherebbe. :mrgreen:


Immaginavo :mrgreen:

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 19:37
da simo85
Foto UtenteFedhman pensa che volevo consigliargli Programming from the ground up ma mi sono trattenuto. :mrgreen:

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 20:20
da MarcoD
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.
:-) :-)

Re: Programmazione x NOVIZI si ma con cosa ??

MessaggioInviato: 10 giu 2017, 20:21
da Fedhman
MarcoD ha scritto:Si poteva fare avanzare il programa una istruzione/passo alla volta e visualizzare sui LED cosa capitava.


http://www.megaprocessor.com/