Ciao a tutti. Avrei una domanda da porre relativa alla compilazione di un programma in C per micro a 8 bit.
Tenuto conto che sul data sheet del micro (supponiamo ad esempio il solito 16f690) non esiste una istruzione in assembler che possa fare una divisione matematica tra due numeri se non scrivendo N linee di programma, sempre in assembler, chiedo se al momento della compilazione è il compilatore stesso a sopperire a questa mancanza magari creando un algoritmo tale da permettere di fare la divisione.
Lo stesso discorso varrebbe per la moltiplicazione.
Questo perché mi ponevo il problema sulla scelta del micro, passando magari ad un 16 bit, nel caso che diventi impossibile fare le operazioni che accennavo.
Ho avuto modo di confrontare il numero di istruzioni in assembler di micro a 8 bit e 16 bit e, in quest' ultimo, sono presenti quelle necessarie a fare le operazioni. Dovrò tenerne conto se programmo in C ?
Non ho mai programmato in C e vorrei provare ma ho questo dubbio che mi assilla.
Spero di essere stato sufficientemente chiaro.
Saluti.
Operazioni matematiche
Moderatore:
Paolino
12 messaggi
• Pagina 1 di 2 • 1, 2
2
voti
Detto in soldoni.
In C fai qualsiasi cosa con qualsiasi micro.
Con un 8 bit serve più memoria (più istruzioni), è solitamente più lento e devi combattere con la poca RAM a disposizione.
Con un 32 bit usi meno memoria, è molto più veloce (solitamente di tanto, parliamo anche di un fattore 20 o più) e di solito hai FLASH e RAM a volontà.
I programmi che scrivi sono identici, diversi sono i risultati in termini di prestazioni. Con gli 8 bit devi prestare più attenzione un po' a tutto ma le periferiche sono semplici a capirsi. Con i 32 bit vai tranquillo e vivi felice come una pasqua ma bisogna studiare molto il micro e le periferiche.
8 bit e 32 bit costano più o meno lo stesso ma con prestazioni nettamente differenti.
Le operazioni matematiche vengono meglio (molto più veloci e con meno uso di FLASH) con i 32 bit anche perché hanno solitamente un set d' istruzioni potente.
I 16 bit sono una via di mezzo.
Di contro i 32 bit non sono oggetti per principianti, salva qualche eccezione.
In C fai qualsiasi cosa con qualsiasi micro.
Con un 8 bit serve più memoria (più istruzioni), è solitamente più lento e devi combattere con la poca RAM a disposizione.
Con un 32 bit usi meno memoria, è molto più veloce (solitamente di tanto, parliamo anche di un fattore 20 o più) e di solito hai FLASH e RAM a volontà.
I programmi che scrivi sono identici, diversi sono i risultati in termini di prestazioni. Con gli 8 bit devi prestare più attenzione un po' a tutto ma le periferiche sono semplici a capirsi. Con i 32 bit vai tranquillo e vivi felice come una pasqua ma bisogna studiare molto il micro e le periferiche.
8 bit e 32 bit costano più o meno lo stesso ma con prestazioni nettamente differenti.
Le operazioni matematiche vengono meglio (molto più veloci e con meno uso di FLASH) con i 32 bit anche perché hanno solitamente un set d' istruzioni potente.
I 16 bit sono una via di mezzo.
Di contro i 32 bit non sono oggetti per principianti, salva qualche eccezione.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
TardoFreak ha scritto:In C fai qualsiasi cosa con qualsiasi micro.
Quindi posso trascurare ciò che leggo sui data sheet relativo al set di istruzioni assembler ?
Grazie, Marco.
1
voti
Esatto.
Il C è bello proprio per questo motivo.
Il C è bello proprio per questo motivo.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Quali? Sono curioso.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
1
voti
perché personalmente preferisco l'assembly che il C. Se sai programmare in assembler impari a conoscere bene il micro con cui lavori, l' hardware, i suoi limiti e le sue possibilità, oltre a vedere i vantaggi in termini di velocità e "snellezza" del programma. Quando però non sai da dove partire il C sicuramente è la cosa migliore
. Poi dipende certo da cosa e da come lo devi fare, se lavori con tanti tipi di micro sicuramente il C ti aiuta molto; ma quando ti accorgi di come il compilatore traduce un semplice cilco in 100istruzioni quando ne basterebbero 2 capisci che anche il C ha i suoi limiti!! O sbaglio?
Questo è solo un pensiero, poi per le 4 cavolate che programmiamo a scuola alla fine cambia poco usare C o Assembly
Questo è solo un pensiero, poi per le 4 cavolate che programmiamo a scuola alla fine cambia poco usare C o Assembly
0
voti
Grazie per la risposta.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
12 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 7 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)


