Elettronica e Radiotecnica > Elettronica & Radiotecnica

creazione di un frequenzimetro

<< < (4/7) > >>

Geremia:
Non capisco la programmazione "wired" ma non importa.
Tra l'altro puoi utilizzare l'IDE di Arduino solo come compilatore senza collegare al PC alcuna scheda, producendo cosi' il codice oggetto in formato .HEX che potrai utilizzare per programmare il micro Atmel che e' posto sulla tua scheda di sviluppo attraverso il canale SPI e un programmatore esterno come USBASP e un SW di programmazione.
Per il debug, e' tutta un'altra cosa, devi disporre di un ambiente tipo AVR STUDIO che si interfaccia con un debugger ICE che puo' avere due canali di comunicazione con il micro, l'SPI oppure il Debug Wire in questo modo potrai disporre di tutte le informazioni in tempo reale durante l'esecuzione del FW scaricato, potrai settare Breakpoint, visualizzare il valore delle variabili utilizzate e debuggare anche step by step il tuo FW.
Ovviamente l'IDE di Arduino non dispone di questo, d'altra parte e' un ambiente nato per approcciare i principianti alla programmazione dei microcontrollori. Una volta esistevano ICE con il "naso" che aveva esattamente la piedinatura del micro e che si sostituiva ad esso sulla scheda target e aveva al suo interno il medesimo micro da debuggare.

listener:
Non capisco perchè fare il processo a me, quando si tentava di spiegare concetti base a chi chiedeva. Forse uso un linguaggio troppo semplice, ma senza questo spesso il prossimo fa fatica a capire. Ok, wired o wiring, ma da quello che ricordo, con arduino ti trovi di fronte un ciclo chiuso che va a ripetersi all'infinito, non si scrive in c ma in linguaggio ad oggetti, e tante robe che con la logica sequenziale di un processore a parer mio proprio non c'azzecca.
Se parti con un microcontollore, sai che ogni riga di codice, corrisponde grosso modo a 1 forse 3-4 istruzioni macchina. Hai idea di cosa stai facendo e di cosa fa il processore.
Forse colpa mia visto il settore che seguo, ma continuo a pensare che gestire in prima persona un processore sia più semplice e sopratutto molto più efficiente. Senza contare che in un progetto finito una schedina arduino non ce la vedo proprio.

Geremia:
Scusa, ma come lo scriveresti un programma se non con un ciclo infinito tipo "round robin". Anche utilizzando uno scheduler sei obbligato a ad un ciclo infinito. Ti ricordi il Basic con l'ultima istruzione GOTO START ?.
Se il programma deve rispondere solo ad eventi esterni (ad esempio variazione di stato di un input che genera un interrupt o anche solo la continua lettura dello stato stesso), in ogni caso deve rimanere in un loop di attesa di tali eventi oppure metterlo in uno stato di dormiveglia per risparmiare i consumi (ad esempio) dal quale viene svegliato da una interruzione (timer, o esterna)
Per carita', non e' volere fare un processo a te, ci mancherebbe, ma e' che quando scrivi cose che non sono corrette, il non correggerti lascerebbe pensare a chi legge che quanto dici e' corretto. Scusa il gioco di parole e non avertene a male.

listener:
Cosa ho scritto di sbagliato mi sfugge. Scrivo a dieci dita di getto e senza correttore, quindi finchè mi parli di errori ortografici anche gravi, doppie, etcc, ci sta tutto ma sicuramente non penso di scrivere baggianate.

Ovvio che un processore lavora su un ciclo infinito, andiamo non parliamo di cose banali. COme lo gestirei. Appunto usando uno scheduler, oppure sto in attesa che una periferica generi un interrupt e il main si limita al controllo, o anche semplicemente terminando il programma, dato che ne ho la possibilità, ci sono casi dove serve anche questo.
Non me la prendo a male, solo che si sta parlando di cose banali tranne che del succo del discorso, del resto non ho mica voglia di stare li a descrivere il miu curriculum quando si parla in modo colloquiale.
Voi consigliate un arduino, va bene anche per impieghi professionali, meglio un linguaggio ad oggetti e meno controllo sull'hardware, bohh, ok.
Io non me la sentirei per niente, questione di punti di vista. Non per questo bisogna controlalre ogni parola scritta dal prossimo cercando un errore in modo da screditarlo.

IZ2UUF (davj2500):

--- Citazione da: listener - 23 Ottobre 2021, 21:00:18 ---Cosa ho scritto di sbagliato mi sfugge. Scrivo a dieci dita di getto e senza correttore, quindi finchè mi parli di errori ortografici anche gravi, doppie, etcc, ci sta tutto ma sicuramente non penso di scrivere baggianate.

Ovvio che un processore lavora su un ciclo infinito, andiamo non parliamo di cose banali. COme lo gestirei. Appunto usando uno scheduler, oppure sto in attesa che una periferica generi un interrupt e il main si limita al controllo, o anche semplicemente terminando il programma, dato che ne ho la possibilità, ci sono casi dove serve anche questo.
Non me la prendo a male, solo che si sta parlando di cose banali tranne che del succo del discorso, del resto non ho mica voglia di stare li a descrivere il miu curriculum quando si parla in modo colloquiale.
Voi consigliate un arduino, va bene anche per impieghi professionali, meglio un linguaggio ad oggetti e meno controllo sull'hardware, bohh, ok.
Io non me la sentirei per niente, questione di punti di vista. Non per questo bisogna controlalre ogni parola scritta dal prossimo cercando un errore in modo da screditarlo.

--- Termina citazione ---

Ciao Listener.

Io concordo con Geremia. Questo è un forum, cioè un luogo dove uno scrive e se un altro utente non è d'accordo, dice la sua, possibilmente argomentando la sua posizione. Se preferisci scrivere cose senza correre il rischio di smentita, forse è meglio un blog.
Tu hai sconsigliato Arduino e hai fornito delle motivazioni (però tu nella paginetta scrivi sempre ad alto livello e ad oggetti, va per forza interpretato prima di mandarlo al processore. E' molto diverso che lavorare con il c della casa madre della microchip che traduce quasi tutte le istruzioni 1:1.).
Non si tratta di "errori di battitura" cercati apposta per screditare, è proprio una affermazione profondamente errata nel suo significato.
Infatti:
1) il C++ esiste da trent'anni ed è un superset del C: questo significa che nella IDE di Arduino puoi anche "lavorare in C della casa madre";
2) scrivere "ad oggetti" non significa che "va per forza interpretato": il C++ viene compilato come il C e genera del codice identico; cambia solo il modo in cui viene presentato;
3) la libreria "Wiring" fornisce metodi che funzionano su numerosi microcontrollori diversi: non è una roba da dilettanti, ma è quello che fanno tutti quelli che vogliono evitare di riscrivere il codice ogni volta che cambiano l'hardware (es. vedi la HAL Hardware Abstracion Layer di STMicroelectronics).
4) la libreria Wiring è un aiuto in più ed ha i suoi limiti: chi è in grado di lavorare direttamente coi registri, può farlo, sempre dentro la IDE di Arduino. Chi è in grado di programmare in assembler, può farlo anche dentro l'IDE di Arduino.

La cosa utile sarebbe stata portare esempi di cosa si possa fare comprando una scheda "PIC" che non si potrebbe fare utilizzando una scheda "Arduino" (ovviamente di pari prestazioni, più o meno).
Infatti, secondo me, consigliare un PIC ad un principiante nel 2021, quando il mondo Arduino negli ultimi dieci e più anni ha avvicinato con soddisfazione ai microcontrollori milioni di principianti, è una bella assunzione di responsabilità che andrebbe motivata con qualcosa di più solido di un "io l'ho provato una volta e buttato nel cassetto".

Ciao
Davide

Navigazione

[0] Indice dei post

[#] Pagina successiva

[*] Pagina precedente

Vai alla versione completa