witam
Mam pewien problem ze skonfigurowaniem przerwania w Atmega8.
Program ma wysyłać dane przez UART w zależności od stanu na końcówce PD2 ( INT0 ). Jeżeli ma stan niski to sprawdza jedną zmienną i w zależności od niej wysyła dane. Jeżeli ma stan wysoki to tak samo. Ale tylko jednorazowa zmiana powinna powodować wysłanie danych.
Wymyśliłem, że obsłużę to przez przerwanie generowane dowolną zmianą stanu, ale w dokumentacji bascoma doczytałem, że w atmega8 rising/falling/change nie działa i przerwanie może być tylko wyzwalane stanem niskim.
Co innego natomiast mówi dokumentacja procesora ( Atmega8A-PU ). Ustawienia wyzwalania przerwania INT0 to bit 0 i bit 1 rejestru MCUCR.
No więc zamiast pisać config int0 = change co i tak nie działa, napisałem
Działa to tak, że zmiana stanu na tej końcówce resetuje mi procesor.
PD2 podciągnięty do VCC
Potrafi ktoś pomóc w takiej sytuacji ?[/code]
Mam pewien problem ze skonfigurowaniem przerwania w Atmega8.
Program ma wysyłać dane przez UART w zależności od stanu na końcówce PD2 ( INT0 ). Jeżeli ma stan niski to sprawdza jedną zmienną i w zależności od niej wysyła dane. Jeżeli ma stan wysoki to tak samo. Ale tylko jednorazowa zmiana powinna powodować wysłanie danych.
Wymyśliłem, że obsłużę to przez przerwanie generowane dowolną zmianą stanu, ale w dokumentacji bascoma doczytałem, że w atmega8 rising/falling/change nie działa i przerwanie może być tylko wyzwalane stanem niskim.
Co innego natomiast mówi dokumentacja procesora ( Atmega8A-PU ). Ustawienia wyzwalania przerwania INT0 to bit 0 i bit 1 rejestru MCUCR.
No więc zamiast pisać config int0 = change co i tak nie działa, napisałem
Kod: text
Działa to tak, że zmiana stanu na tej końcówce resetuje mi procesor.
PD2 podciągnięty do VCC
Potrafi ktoś pomóc w takiej sytuacji ?[/code]