Visualizza messaggio singolo
Vecchio 16 aprile 12, 11:28   #45 (permalink)  Top
romoloman
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
Il registro TFR1 è il timer 1 appunto da 16 bit ICF1 è il bit del registro in causa

il seguente controllo sapresti commentarmelo?

if (TIFR1 & (1<<ICF1)) {

leggendo il datasheet mi sono accorto che è corredato di esempi in assembler.. meglio dei datasheet dei Pic.. il problema che in questi gg ho poco tempo libero.. cci vuole tempo per leggere con attenzione .. mi viene facile capire perchè faccio riferimento al lavoro fatto con i Pic.. molte cose coincidono cambiano solo i nomi dei registri.. mi sono accorto che ci sono istruzioni in assembler che sommano e sottraggono su registri a 16 bit si distinquono perchè finiscono queste istruzioni con la W ..fantastico.. poi scopro cose che per farle con i Pic devi sudare! anche i PWM hanno prescaler da 1023 !
ICF1 è una costante numerica che rappresenta il valore posizionale del BIT ICF1,
1<<ICF1 esegue un left shift di 1 di ICF1 posizioni, a quel punto viene fatto un & con il registro del timer e se il risultato è vero (!=0) viene eseguito il codice.

PS: Consiglio, lascia perdere l'assembler con gli AVR usa il C e un buon compilatore (AVR-GCC 4.7.0) il codice risultante è meglio di quello che puoi fare tu....
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando