Witam
Mam problem z obsługą przerwań. Otóż poniżej zamieszczony program w przypadku normalnej pracy wyświetla na wyświetlaczu "1" w przypadku wykrycia stanu niskiego na porcie INT1 wyświetla "0". Niestety program wykonuje 2 - 3 przejścia pomiedzy stanem niskim --> wysokim --> niskim -->... i następnie przestaje reagować na zmianę stanu portu INT1 tzn. objawia się to zniknięciem z wyświetlacza znaków "0" i "1" .
Stan niski jest wyzwalany napięciem ~0,2V natomiast stan wysoki jest wyzwalany napięciem 5,16V. Jeśli trzeba mogę zamieścić schemat układu który steruje niskim i wysokim stanem na wejściu INT1, choć wg. wskazań miernika układ działa prawidłowo.
Program jest oczywiście uruchamiany na procesorze Atmega8 z wewnętrzym kwarcem 1Mhz.
Niestety swoją przygodę z procesorami dopiero zaczynam i nie bardzo potrafię znaleźć przyczynę takiego zachowania.
Z góry dziękuję za wszelkie rady i sugestie.
--
pozdrawiam
demeus
Mam problem z obsługą przerwań. Otóż poniżej zamieszczony program w przypadku normalnej pracy wyświetla na wyświetlaczu "1" w przypadku wykrycia stanu niskiego na porcie INT1 wyświetla "0". Niestety program wykonuje 2 - 3 przejścia pomiedzy stanem niskim --> wysokim --> niskim -->... i następnie przestaje reagować na zmianę stanu portu INT1 tzn. objawia się to zniknięciem z wyświetlacza znaków "0" i "1" .
void Inicjalizacja(void)
{
LCD_init(); //Inicjalizacja wyświetlacza
sei(); //Włączenie obsługi przewań
MCUCR = (0<<ISC11) | (0<ISC10); //Wyzwolenie przerwania niskim stanem
GICR = (1<<INT1); //Załączenie przerwania na INT1
}
SIGNAL (SIG_INTERRUPT1)
{
LCD_xy(0,0);
LCD_putint((1),10) ;
}
int main( void )
{
Inicjalizacja();
while(1)
{
LCD_xy(0,0);
LCD_putint((0),10) ;
}
}
Stan niski jest wyzwalany napięciem ~0,2V natomiast stan wysoki jest wyzwalany napięciem 5,16V. Jeśli trzeba mogę zamieścić schemat układu który steruje niskim i wysokim stanem na wejściu INT1, choć wg. wskazań miernika układ działa prawidłowo.
Program jest oczywiście uruchamiany na procesorze Atmega8 z wewnętrzym kwarcem 1Mhz.
Niestety swoją przygodę z procesorami dopiero zaczynam i nie bardzo potrafię znaleźć przyczynę takiego zachowania.
Z góry dziękuję za wszelkie rady i sugestie.
--
pozdrawiam
demeus