// здесь пишем время в часах #define YOU_HOUR_VALUE 18 // расчетное значение будет 61,274509803921568627450980392157 прерываний в секунду =)) округляем до 61, без часового кварца точности не будет. #define TIMER_COUNTER 61 #define MAX_COUNTER TIMER_COUNTER*60*60*YOU_HOUR_VALUE int counter = 0; void timer0_interrupt(void) { counter++; if (counter > MAX_COUNTER) { counter = 0; _moya_funkcia_01(); } } void _moya_funkcia_01(void) { // your code here } void main(void) { TCCR0 = 0b00000101; // (16 000 000 / 1024) TCNT0 = 0x00; OCR0 = 0xFF; // ((16 000 000 / 1024) / 255) = 61 Hz TIMSK = 0b00000011; while(1) { // your code here } };