Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Operazioni matematiche

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Operazioni matematiche

Messaggioda Foto Utentegyruss » 12 set 2012, 22:34

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.
Avatar utente
Foto Utentegyruss
50 1 3
New entry
New entry
 
Messaggi: 75
Iscritto il: 26 mar 2010, 13:01
Località: Torino

2
voti

[2] Re: Operazioni matematiche

Messaggioda Foto UtenteTardoFreak » 12 set 2012, 23:29

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.
"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,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[3] Re: Operazioni matematiche

Messaggioda Foto Utentegyruss » 12 set 2012, 23:37

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.
Avatar utente
Foto Utentegyruss
50 1 3
New entry
New entry
 
Messaggi: 75
Iscritto il: 26 mar 2010, 13:01
Località: Torino

1
voti

[4] Re: Operazioni matematiche

Messaggioda Foto UtenteTardoFreak » 12 set 2012, 23:39

Esatto.
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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: Operazioni matematiche

Messaggioda Foto UtentePioz » 12 set 2012, 23:45

TardoFreak ha scritto:Esatto.
Il C è bello proprio per questo motivo. ;-)


O brutto per quel motivo, dipende dai punti di vista!! :mrgreen:
Avatar utente
Foto UtentePioz
629 4 8
Expert
Expert
 
Messaggi: 568
Iscritto il: 11 ago 2011, 21:56

0
voti

[6] Re: Operazioni matematiche

Messaggioda Foto UtenteTardoFreak » 12 set 2012, 23:46

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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: Operazioni matematiche

Messaggioda Foto Utentegyruss » 12 set 2012, 23:49

Grazie Tardo Freak, mi hai tolto un grande dubbio.

Ciao.
Avatar utente
Foto Utentegyruss
50 1 3
New entry
New entry
 
Messaggi: 75
Iscritto il: 26 mar 2010, 13:01
Località: Torino

1
voti

[8] Re: Operazioni matematiche

Messaggioda Foto UtentePioz » 13 set 2012, 0:00

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 :mrgreen:. 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 :D
Avatar utente
Foto UtentePioz
629 4 8
Expert
Expert
 
Messaggi: 568
Iscritto il: 11 ago 2011, 21:56

0
voti

[9] Re: Operazioni matematiche

Messaggioda Foto UtenteTardoFreak » 13 set 2012, 0:03

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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: Operazioni matematiche

Messaggioda Foto UtentePioz » 13 set 2012, 0:05

Niente, ma adesso dimmi un po' la tua opinione che sono curioso anche io!! :D
Avatar utente
Foto UtentePioz
629 4 8
Expert
Expert
 
Messaggi: 568
Iscritto il: 11 ago 2011, 21:56

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti