FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc
TIMER1 e MikroC - numeri decimali e numeri binari
Autore
Messaggio
opzioni
mpeino
postato il: 08.12.2025, alle ore 20:13
TIMER1 e MikroC - numeri decimali e numeri binari
Buonasera
Utilizzando il linguaggio c e mikroc possiamo lavorare con i numeri decimali.
Il mio problema nasce nel momento in cui voglio caricare un numero decimale nei registri del TIMER1 :
TMR1H
TMR1L.
Qualcuno potrebbe dirmi che basterebbe convertire il numero decimale in un numero binario.
Ok .... ma in fase di programmazione come si fa???
Grazie.
Massimo.
lucio2
postato il: 11.12.2025, alle ore 01:53
Se ho capito bene la domanda, ad esempio con TMR1L,H a 8 bit e 'int' a 16 bit.
un modo potrebbe essere:
int Timer_Val = 1000;
TMR1H = (unsigned char) (0xFF & (Timer_Val >> 8));
TMR1L = (unsigned char) (0xFF & (Timer_Val ));
lucio2
postato il: 15.12.2025, alle ore 09:06
Per chi e' piu' principiante di me aggiungo delle precisazioni. Sperando che siano corrette...
Per i valori delle 'costanti' il compilatore 'C' fa automaticamente una conversione in base a cosa c'e' 'davanti' al numero. Ad esempio, 0x...=esadecimale, 0b...=binario, numero senza davanti uno zero=decimale, numero con davanti uno zero=ottale, ...
Le 'variabili' il compilatore le tratta a seconda come sono state definite:
int, unsigned int, float, double, etc... ci sono molti tipi.
Per cui a riguardo della domanda sulla scrittura nei registri TMR1L,TMR1H il codice deve solo 'spezzare' il valore del timer nella parte alta e parte bassa; utilizzando degli shift, come nel commento precedente; oppure per chi e' piu' softwarista definendo opportune strutture, union, etc... e poi sara' il compilatore a generare le operazioni logiche necessarie (shift, and, ...)
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito