prosze oto kod mam problem z ogarnięciem dlaczego nie zlicza mi sygnałów z int0
dodam że TIMER2 mapędza kwarc zegarkowy
#include <avr/io.h> // dostęp do rejestrów
#include <avr/interrupt.h> // funkcje sei(), cli()
#include <avr/signal.h> // definicje SIGNAL, INTERRUPT
#include <util/delay.h>
#include <stdlib.h>
#include <stdio.h>
#include "char_code.h"
#include "LCD_lib.h"
#include <avr/io.h>
#include <util/delay.h>
void RozdzielLiczbe(uint32_t Liczba,const uint8_t LCDGotoX,const uint8_t LCDGotoY);
unsigned char str_a[16];
unsigned char num_a;
unsigned char str[16];
unsigned char num;
float value_a = 0;
float overflow = 0;
SIGNAL (SIG_OVERFLOW2) // obsługa przerwania od licznika 2
{PORTB^=_BV(PB1);
value_a++;
num_a = sprintf(str_a,"uplynelo: %ds",(unsigned char)(value_a));
LCDGotoXY(0,0);
LCDstring(str_a,num_a);
RozdzielLiczbe(overflow,0,1);}
SIGNAL (SIG_OVERFLOW0)
{
overflow++; // inkrementuj licznik przepełnień
}
int main(void) // program główny
{
DDRB |=_BV(1) ; // PORTB pin 1 jako wyjście
PORTB &=~_BV(1); // PORTB pin 1 stan niski
TIMSK &=~_BV(TOIE2); // Wyłącz przerwania TC2
ASSR |= _BV(AS2); // przełącz TC2 z taktowania zegarem CPU
// na generator asynchoniczny 32768 Hz
TCCR2 = _BV(CS22)|_BV(CS20); // ustaw preskaler na podział przez 128
// aby generować przerwania dokładnie co 1 sekundę
while(ASSR&0x07); // czekaj na uaktualnienie TC2
TIMSK |= _BV(TOIE2)|_BV(TOIE0); // włącz przerwania z TC2 i TC0
TCNT0 = 0x00; // wartość początkowa TC0
TCCR0 = _BV(CS01)|_BV(CS02);// wyzwalanie z T0 opad. zboczem
LCDinit(); // inicjalizacja wyświetlacza
LCDcursorOFF(); // wyłaczenie kursora
sei(); // włącz obsługę przerwań
while(1) ; // pętla nieskończona
}dodam że TIMER2 mapędza kwarc zegarkowy
