ATmega8515 Int0 -problem (Bascom AVR)

Apr 25, 2005 4 Replies

Witam Mam dziwny problem z ATmega8515 Mam na Int0 podpiety microswitch i pullupa. Czytalem w pdf ze ATMEL zmienil cos w ATmegi i dziala tylko tryb low level, ale to nie powinno miec wplywu Po kazdym nacisnieciu przerwanie wykonywane jest 2x. Oto procedura przerwania:



Keyin: Disable Int0 Wait 1 Print "x" Enable Int0 Return


Micha³



Michał napisał:

Jeśli styki drgają, a obsługa przerwania krótka ... ;-)

pzdr Artur

Artur snipped-for-privacy@wp.pl napisał(a):

Czy 1s to krótko ? Przed włączeniem INT0 i wyjściem z obsługi tegoż , wyzeruj flagę zgłoszenia przerwania INT0 bo styki drgają ... ;)

Piotrek

Piotrek Sz. napisał:

Potwornie długo ;-)

Jak pisze w BASCOM to nie musi zerować flagi, ale za to musi odpowiednio ustawić tryb przerwania. Pewnie ustawiony jest na każdą zmianę stanu logicznego, czyli generuje przerwanie zarówno przy naciśnięciu jak i zwolnieniu przycisku. ;-)

pzdr Artur PS. Ale też zanim procek przejdzie do podprogramu to też może zdążyć zaliczyć dwa przerwania. ;-)

Pomoglo usuniecie lini konfiguracji przerwania, (mialem tam maly blad, tryb pracy ustawiony na falling a nie low level) Mam teraz tylko On int0 keyin i smiga elegancko. Czytalem na MCSelec, ze z powodu zmiany trybu pracy przerwan zewnetrznych na LowLevel w ATmegach w zasadzie nie wymagaja konfiguracji przerwan, wiec wywalilem i dziala.

Micha³

P.S. Co do drgan stykow to nie moglo byc to, switch wlaczalem na ktorka chwile pozatym przy pierwszym wejsciu do przerwania blokowalem przerwania i najwczesniej mogl wykonac nastepne po uplywie 1s. Widocznie zle ustawiony bit trybu pracy INT0 powodowal nie male zamieszanie w jego obsludze,

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required