Chciałbym napisać przerwanie do mojego programu zegara. Chcialbym aby przerwanie bylo wywolywane zmiana jednego pinu tzn zmiana PINA4 z 1 na 0. Gdy zmienie ten przycisk chcialbym aby wykonalo sie przerwanie.
oto moj KOD:
co mam wpisac w nawias ISR() aby obsluzyc przerwanie moim PINEM? Przerwanie ma mi umozliwic mozliwosc zmiany czasu. Tylko nie wiem jak je wywolax
oto moj KOD:
int main(void)
{
char B1;
DDRA=0x00;
DDRD |= (1 << PD1);
LCD_Initialize();
TWI_Init();
ustaw_czas(godzina,minuta,sekunda);//zerowanie zegara
ustaw_zegar();
ustaw_czas(godzina,minuta,sekunda);
sei();
do
{
TWI_Start(); // start transmission
TWI_Write(0xD0); // write addres of M41T00
TWI_Write(0x02); // select hours register
TWI_Start(); // repeated start
TWI_Write(0xD1); // write address for reading data
B1 = TWI_Read(NACK); // read hours register
TWI_Stop(); // stop transmission
itoa(((B1>>4)&3),tim,10);
LCD_GoTo(0,0);
LCD_WriteText(tim);
itoa((B1&15),tim,10);
LCD_GoTo(1,0);
LCD_WriteText(tim);
LCD_GoTo(2,0);
LCD_WriteText(":");
TWI_Start(); // start transmission
TWI_Write(0xD0); // write addres of M41T00
TWI_Write(0x01); // select minutes register
TWI_Start(); // repeated start
TWI_Write(0xD1); // write address for reading data
B1 = TWI_Read(NACK); // read minutes register
TWI_Stop(); // stop transmission
itoa(((B1>>4)&7),tim,10);
LCD_GoTo(3,0);
LCD_WriteText(tim);
itoa((B1&15),tim,10);
LCD_GoTo(4,0);
LCD_WriteText(tim);
LCD_GoTo(5,0);
LCD_WriteText(":");
TWI_Start(); // start transmission
TWI_Write(0xD0); // write addres of M41T00
TWI_Write(0x00); // select seconds register
TWI_Start(); // repeated start
TWI_Write(0xD1); // write address for reading data
B1 = TWI_Read(NACK); // read minutes register
TWI_Stop(); // stop transmission
itoa((B1>>4),tim,10);
LCD_GoTo(6,0);
LCD_WriteText(tim);
itoa((B1&15),tim,10);
LCD_GoTo(7,0);
LCD_WriteText(tim);
}while(1);
return 0;
}
ISR(...)
{
......
}co mam wpisac w nawias ISR() aby obsluzyc przerwanie moim PINEM? Przerwanie ma mi umozliwic mozliwosc zmiany czasu. Tylko nie wiem jak je wywolax