ShanSong napisał(a):
teraz działa ale nie zlicza co sekundę
Wartość TOP dla wybranego przez Ciebie trybu CTC powinna być wpisana do rejestru OCR1A, a nie OCR1BH. W ogóle rejestr OCR1BH to rejestr 8-bitowy i próby wpisania do niego wartości większej od 255 nie mają sensu. W celu wpisania wartości 16-bitowej np. do 16-bitowego rejestru OCR1A w przypadku języka C nie trzeba rozbijać jej na bajty OCR1AH i OCR1AL. Wystarczy
OCR1A = 31250 - 1;Dla porządku lepiej byłoby zmienić też bit zezwolenia na przerwanie na OCIE1A, oraz nazwę wektora przerwania na TIMER1_COMPA_vect
No i zwróć uwagę na pytanie kolegi
zorro. Chciał Ci przypomnieć, że w przypadku zmiennych używanych zarówno w procedurze obsługi przerwania jak i w pętli głównej programu powinny posiadać kwalifikator
volatile.