Nie mogę sobie poradzić z przerwaniem na INT1. Piszę program do komunikacji
dwustronnej z RFM12B. Urządzenie nasłuchuje (jest włączone przerwanie na INT1
w przypadku pojawienia się stanu niskiego następuje uruchomienie przerwania i
odebranie danych):
w przypadku odbioru informacji przez uC ten chce chce coś nadać zwrotnego, w
tym celu przechodzi do odpowiedniej funkcji która na samym początku "robi":
wtedy transiver nadaje to co ma nadać (na PINie - INT1 w przypadku możliwości
przesłania paczki (poprzednia wyszła) pojawia się stan niski, wtedy uC wie, że
może nadać kolejną paczkę, w przypadku zajętości transivera stan wysoki)
Funkcja wykonuje się bez żadnych przeszkód. Problem pojawia się kiedy chce
włączyć obsługę przerwań komendą
Automatycznie zostaje wrzucony w funkcję odpowiadającą za wykonanie
przerwania, a to dlatego, że wykonuje ona zaległe przerwanie wynikające z
wcześniejszej operacji wysyłania danych i zmiennych stanów na "INT1" a mi
właśnie o to chodzi, żeby na czas wysyłania wyłączyć przerwania i po wykonaniu
tej operacji włączyć je z powrotem i nie wskakiwać tam od razu tylko po
przyjściu paczki
dwustronnej z RFM12B. Urządzenie nasłuchuje (jest włączone przerwanie na INT1
w przypadku pojawienia się stanu niskiego następuje uruchomienie przerwania i
odebranie danych):
Kod: C / C++
w przypadku odbioru informacji przez uC ten chce chce coś nadać zwrotnego, w
tym celu przechodzi do odpowiedniej funkcji która na samym początku "robi":
Kod: C / C++
wtedy transiver nadaje to co ma nadać (na PINie - INT1 w przypadku możliwości
przesłania paczki (poprzednia wyszła) pojawia się stan niski, wtedy uC wie, że
może nadać kolejną paczkę, w przypadku zajętości transivera stan wysoki)
Funkcja wykonuje się bez żadnych przeszkód. Problem pojawia się kiedy chce
włączyć obsługę przerwań komendą
Kod: C / C++
Automatycznie zostaje wrzucony w funkcję odpowiadającą za wykonanie
przerwania, a to dlatego, że wykonuje ona zaległe przerwanie wynikające z
wcześniejszej operacji wysyłania danych i zmiennych stanów na "INT1" a mi
właśnie o to chodzi, żeby na czas wysyłania wyłączyć przerwania i po wykonaniu
tej operacji włączyć je z powrotem i nie wskakiwać tam od razu tylko po
przyjściu paczki