Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[INTERRUPT] Info importante per aspiranti microcontrollisti

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[31] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteposta10100 » 11 feb 2015, 21:30

TardoFreak ha scritto:Se poi il compilatore fa cag... ehm ... non è dei migliori allora si mette mano all' assembler. -:-

Se non hai bisogno di prestazioni e se hai abbastanza flash lo lasci fare... l'ultimo firmware che ho scritto l'ho lasciato tradurre al compilatore, tanto qualche millisecondo in più o in meno non cambiavano nulla.
E la flash... è avanzata #-o
Se invece sei alle strette ti tocca smontare, ripulire e ottimizzare. Ma lo sai meglio di me ;-)

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.415 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

3
voti

[32] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto UtenteTardoFreak » 11 feb 2015, 22:35

Sono d'accordo,
Resta comunque il fatto che, a mio avviso, è importante sapere come lavora il compilatore.
Ovviamente bisogna conoscere l' assembler del micro in questione altrimenti non si è in grado di valutare.
In buona sostanza lasciamo al compilatore il lavoro noioso per concentrarsi sulle cose importanti. :ok:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[33] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteangel99 » 11 feb 2015, 22:36

TardoFreak ha scritto:Le palle!

Ho seguito gli altri 3D dove elogi il C e mi viene prurito alla barba. Nel senso che è indubbio il fatto che con l'abbondanza di flash e di RAM degli ultimi micro, i compilatori adesso possano fare anche delle cose carine. Così ogni volta che inizio un nuovo progetto mi viene voglia di provare. Scrivo un paio di routine, poi desisto. E' quella sensazione di costruire sulle sabbie mobili che mi ferma. E' la stessa sensazione del VHDL: prima ci provo, poi passo alle porte e ai FF. Forse sto diventando vecchio e non riesco a stare al passo con queste diavolerie da giovani. :mrgreen:
Avatar utente
Foto Utenteangel99
3.516 1 4 11
Master
Master
 
Messaggi: 1149
Iscritto il: 23 gen 2015, 19:39

2
voti

[34] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto UtenteTardoFreak » 11 feb 2015, 22:41

Alura,
Secondo me non bisogna essere degli integralisti.
Il C è comodo, i compilatori di oggi fanno cose eccellenti, a volte migliori di quello che possono fare certi umani.
Quello che dico è che è bene sapere, conoscere, essere curiosi.
Solo assembler è improponibile (soprattutto per certi progetti complessi), solo C senza sapere quello che succede dietro le quinte è, come dire, troppo comodo e pericoloso.
Sapere come viene compilato il codice è conoscenza.
Quindi che si scriva in C ma sempre con occhio critico ed attento. ;-)
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

1
voti

[35] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteposta10100 » 11 feb 2015, 22:42

angel99 ha scritto:Così ogni volta che inizio un nuovo progetto mi viene voglia di provare.

Anche io pensavo di scrivere direttamente in assembler, poi ho iniziato con il C e mi sono tolto di torno parecchie noie.
Pensa solo a fare la somma tra due numeri a 32 bit senza la "somma con riporto" su un PIC a 8 bit. Sono uno sproposito di istruzioni. Oppure la gestione della RAM, il compilatore in genere è in grado di riutilizzare la memoria senza che tu nemmeno ci debba pensare.

Insomma, i vantaggi ci sono, ma come già detto, non sempre il compilatore da il miglior risultato.
Se serve, gli si da una mano :mrgreen:

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.415 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

0
voti

[36] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteangel99 » 11 feb 2015, 23:04

posta10100 ha scritto:Oppure la gestione della RAM, il compilatore in genere è in grado di riutilizzare la memoria senza che tu nemmeno ci debba pensare.

Aggghhhhhh!!!!! Vedi, è proprio questo che mi spaventa. I miei programmi (assembler) sono suddivisi in più file, uno di questi si chiama Memory.asm. Ho una serie di templates, in genere uno per ogni tipologia di micro, e su questi file vengono, volta per volta, definiti gli ambiti delle variabili, delle zone temporanee, di quelle riallocabili. Tutto sotto controllo. Sono IO che impongo cosa debba succedere, non è qualcosa che funziona, ma è deciso da qualcun altro praticamente fuori dal mio controllo.

La mia paura (magari infondata) è il butterfly effect: cambi un'istruzione da una parte del programma e il compilatore ti sconvolge il codice perché la strada che aveva scelto prima, ora non è più perseguibile. Cosa dovrei fare io? Verificare il compilato ad ogni compilazione, leggendo dell'assembler scritto da una macchina? No grazie.

Poi, come esiste chi scrive in C e chi scrive bene in C, lo stesso vale per l'assembler. Ho visto ben pochi programmatori sfruttare in modo completo le potenzialità di un MACROassembler. Io di macro ne scrivo a iosa e le utilizzo in continuazione, anche per rendere più leggibile il codice. Posta faceva l'esempio delle somme a più Byte: questo è il tipico caso dove una macro è ancora più veloce (nella stesura del codice) di quanto sia scrivere il paradigma in C. Se poi vuoi che quella macro appoggi le variabili in un punto diverso oppure che esca con un'eccezione, copi il codice chiamandolo _MACRO2 e modifichi ciò che serve.

Io ho una libreria di macro talmente estesa che il main.asm ha quasi sempre più rige in maiuscolo che istruzioni in assembler. Non sto dicendo che la strada giusta è questa e che il C sia sbagliato, ma lasciare questa strada per quella, la vedo ancora da venire. Ovvio, per me.
Avatar utente
Foto Utenteangel99
3.516 1 4 11
Master
Master
 
Messaggi: 1149
Iscritto il: 23 gen 2015, 19:39

0
voti

[37] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto UtenteWALTERmwp » 12 feb 2015, 0:04

Oltre all'aspetto relativo alla gestione del contenuto della routine di interrupt, finalizzata alla sua ottimizzazione e a quella del programma in generale, si potrebbe prendere in considerazione una possibile conseguenza dovuta alla chiamata della routine stessa.

Allora, l'aspetto "didattico" conferito al thread, visto che magari tanti altri utenti potrebbero leggere questi passaggi, consente di ricordare che l'interruzione di una operazione (da parte di un altro processo ma in tal caso meglio scrivere, da parte della routine di interrupt) può avere conseguenze "particolari" sulla esecuzione di un programma; è necessario quindi sapere cosa si va a chiedere ad una routine di interrupt e cosa potrebbe interrompere, una routine di interrupt.

Così argomentando nel merito, facendo riferimento per esempio a questo link "file:///C:/Documents%20and%20Settings/Nobody/Documenti/Downloads/Beyond_volatile.pdf" (per citare una risorsa già considerata), ci si può rendere conto (o eventualmente ricordare) cosa comporta un intervento che non garantisce la "atomic operation".

Dal mio punto di vista, come ha scritto Foto UtenteTardoFreak nel Post [34], assume importanza fondamentale la conoscenza e la consapevolezza di quello che si va a fare, sopratutto se si scrive il codice con un linguaggio superiore; se poi si sa "cosa combina" il compilatore, tanto meglio.
Al tempo stesso, mi pare, come ha scritto Foto Utenteangel99 nel Post [36], aderendo il più possibile al codice "asm" riduci i rischi insiti del passaggio attraverso un compilatore.
Ognuno poi adotta il proprio stile, ricorre alle proprie consuetudini ma, certamente, senza prescindere dalla conoscenza.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
22,1k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 6371
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

2
voti

[38] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteangel99 » 12 feb 2015, 0:19

Si può azzardare anche un passo ulteriore.

asm: controllo hardware del micro. Sai esattamente cosa fa, istruzione per istruzione.
C: devi sapere cosa fa il compilatore. Se sei in grado di farlo, hai quasi lo stesso controllo.
Arduino: non sai nulla, non puoi sapere nulla e non saprai mai nulla.
Avatar utente
Foto Utenteangel99
3.516 1 4 11
Master
Master
 
Messaggi: 1149
Iscritto il: 23 gen 2015, 19:39

1
voti

[39] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utenteposta10100 » 12 feb 2015, 0:24

angel99 ha scritto:C: devi sapere cosa fa il compilatore.

In realtà è abbastanza logico sapere cosa fa.
Non puoi semplicemente dire "accendi un led ogni 3 secondi", devi impostare i timer, le porte, ...
Come per l'ASM ma in maniera più comoda.
angel99 ha scritto:Arduino: non sai nulla, non puoi sapere nulla e non saprai mai nulla.

Ma non si parlava di aspiranti microcontrollisti? Arducoso è altra cosa ;-)
O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.415 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

0
voti

[40] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utentespeedyant » 12 feb 2015, 0:34

Ma esistono gestioni tipo "polling" anche per i micro? Vanno emulate?

Se si cerca USB polling su google si "intuisce" il mio dubbio.
Son quello delle domande strane!
Avatar utente
Foto Utentespeedyant
3.421 3 6 8
Master
Master
 
Messaggi: 2392
Iscritto il: 9 lug 2013, 18:29
Località: Torino

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti