Mi sono inciampato su un sorgente che legge il segnale PWM da GRBL della Z,
e va a controllare un sarvo sull'asse Z, il programma gira su un ATtiny,
mi sono incuriosito e sono 5 giorni che ci sbatto la testa per capirlo, e sono gia arrivato
fino quasi in fondo, ho scaricato anche il dataset di ATtiny :-)))),
ma non riesco a trovare da nessuna parte dove sia sto ISR() in più
la riga è : ISR(TIMER0_COMPA_vect)
gia non mi è stato possibile trovare nè nel dataset tanto meno nelle librerie incluse il ISR()
non parliamo poi di: TIMR0_COMPARA_vect, dove trovo documentazione
a riguardo?
La isr è la funzione che viene eseguita quando arriva un interrupt.
Nel datsheet trovi la tabella drgli interrupt e ci trovi anche queto, che è uno degli interrupt di un timer, timer0, comparazione canale A. Vect sta per vettore.
Studiati i capitoli sugli interrupt nel dstasheet
OK,
ma nel dataset non sono riuscito a trovare nessun riferimento a ISR() tanto meno a
TIMER0_COMPA_vect ma solo un TIMER0_COMPA, di cui allego la tabella, però nè nel dataset summary nè nel dataset cpleted c'è qualche riferimento a ISR(), tanto meno poi a TIMER0_COMPA_vect,
immagino a questo punto che sia in qualche libreria, ma nella interrupt.h non c'è e non l'ho trovata in nessuna
libreria deglii interrupt, ora penso, se non trovo quel riferimento, cosa altro mi sto perdendo?
ci sono altre istruzzioni ho comandi che non sono documentati?
ci sono altri documenti oltre il dataset ufficiale della atmel?
sai... quando qualcosa ti è sfuggito, le domande diventantano un sacco :-), e sopratutto,
cosa e quanta roba non so?
Ap-one:
gia non mi è stato possibile trovare nè nel dataset tanto meno nelle librerie incluse il ISR()
non parliamo poi di: TIMR0_COMPARA_vect, dove trovo documentazione
a riguardo?
Prima di tutto è DATASHEET e non dataset, la ISR() non la trovi sul datasheet perché è una funzione che fa parte del compilatore avrgcc, la sintassi è ISR(int_vect) dove int_vect è l'address fisico del vettore di interrupt.
Dato che Arduino usa avrgcc che a sua volta si appoggia alle avr-libc la tabella dei nomi simbolici per i vettori di interrupt è quella delle avr-libc dove trovi "TIMER0_COMP_A_vect", è la stessa cosa di "TIMER0_COMPA" citato sul datasheet, hanno semplicemente aggiunto il postfisso _vect.
Grazie infinite :-)))), spiegati in quel modo riesco a capire anche io :-))))),
almeno qualcosa, poi mettere in pratica vedremo se è vero :-))))),
di nuovo Grazie e a buon rendere .-))