ISR() e loro parametri

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?

Grazie :-)))))

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?

grazie per la risposta :slight_smile:

Ciao!

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.

Ap-one:
...dove trovo documentazione a riguardo?

Qui qualcosa in italiano: http://www.mauroalfieri.it/elettronica/tutorial-arduino-interrupt.html

Qui qualcosa, poi al link di Gammon ma tutto in inglese: http://arduino.cc/en/Reference/AttachInterrupt
Qui altro sempre inglese: Arduino 101: Timers and Interrupts - Tutorials - RobotShop Community

OK, il mio inglese fa un pò acqua :-))),
perfetto, adesso mi guardo la documentazione che trovo sul avr-libc,

grazie tante :-)))
adesso ho da lavorare prima di ropere di nuovo :-))))).

Grazie!

Ciao!

A questo post, c'e' un zip con schede in italiano su interrupt di Leo72 (admin):

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 .-))

Ciao!