logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Czy blokować przerwania INT0, INT1, Timer0, Timer1 przy SPI na ATMega?

Ac_aurora 25 Sie 2008 10:44 1161 2
REKLAMA
  • #1 5472140
    Ac_aurora
    Poziom 1  
    Posty: 1
    Sprawa jest następująca, zaprojektowałem na ATMega mały system który używa kliku przerwań sprzętowych a mianowice INT0,INT1, oraz przerwania timera Timer0,Timer1.
    Dodatkowo program (w C) obsługuje przetworniki ADC oraz DAC podłączone pod magistralę SPI. Generalnie wszystko działa OK ale czasem pojawiają się nieprawidłowe wartości napięć na wyjściu przetworników DAC. Z dotychczasowej analizy zagadnienia wychodzi mi że w programie obsługi powinno być wszystko OK ale praktyka wykazuje jednak co innego.
    Podejżenie padało w takim razie na przerwania i pytanie jest następujące czy w czasie obsługi transmisji SPI nei powinienem blokować przerwań przynajmniej tych które sa najdłuższe w w swoim wykonaniu ?
  • REKLAMA
  • #2 5472254
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    Jeśli dane do przetwornika DAC muszą napływać ciągłym strumieniem (bez większych przerw pomiędzy bajtami w pakiecie) to może być konieczność blokowania przerwań. Zastanawiał bym się jednak nad tym, czy wykonywanie przerwania, które trwa najdłużej, nie powinno zostać przesunięte do kodu głównego (skasować IE, testować IF, jeśli ustawione wpisać w nie jedynkę by skasować i wykonać resztę rzeczy). Generalnie w przerwaniach powinno się robić jak najmniej rzeczy, gdyż przerwania dają możliwość reakcji prawie natychmiast. Gdy coś się wykonuje dłużej, inne przerwania są przyblokowane i mechanizm przerwań trochę traci na znaczeniu.
  • #3 5474657
    Dr_DEAD
    Poziom 28  
    Posty: 829
    Pomógł: 126
    Ocena: 3
    A mówią Ci coś takie pojęcia jak: atomowość zmiennej, semafory, kolejka ..... Jeżeli nie to tu szukałbym przyczyny. Pamiętaj że przerwania, to tak jakby wielowontkowy system.
REKLAMA