Chodzi mi o jakiś przykladowy kod źródłowy,
By kontroler np 2313 reagował przerwanem na przycisk.
Wiem że to dyletancka postawa ale nie wiem czy symulator dobrze odzwierciedla przerwania...
Jeżeli chodzi o AvrStudio to jest to różnie i raczej nie polecam polegać na tym. Lepiej sprawdzić to na żywca.
No, no, bez kryptoreklamy tego bezalkoholowego... Z tym symulatorem można się nauczyć żyć... serio... jedyne, czego nie zasymulujesz to czas rzeczywisty, od tego są symulatory sprzętowe, oraz wbudowana w niektóre procesorki AVR funkcja DebugWire lub JTAGICE (z rozkazem break w roli głównej), również obsługiwana przez AVRStudio.
kopernik8 : Najczęstszy przypadek wykorzystania zewnętrznego to detekcja przejścia przez zero w regulacji fazowej mocy napięcia przemiennego, jest tego trochę na elektrodzie oraz w notach aplikacyjnych Atmela... Z własnego doświadczenia nie polecałbym zastosowania przerwań zewnętrznych do obsługi klawiatury itp., bo to elementy mechaniczne, z których ilość impulsów jest losowa, chociaż mogłoby się wydawać, że wcisneliśmy tylko raz klawisz. Możesz wykorzystać ten wektor przerwania do własnych zastosowań, np. bariera podczerwieni oraz wszędzie tam, gdzie jesteś pewien, że liczba wywołań/impulsów będzie stabilna w czasie.
Light-I
Stary....
Chyba normalne że układ CMX612 podłączam do mikrokontroletra at90s2313 i potrzbuje przerwanie bo układ CMX ma wybudzić kontroler z uspienia i wyswietlić dane na LCD proste....
Tyle że ja musze obejżeć na jakims przykłądzie uzycie przerwania INT0 lub INT1
Jak prosisz o przykłady, to podaj w jakim języku... W asm na początku procedury przerwania zachowujesz rejestr stanu, potem te rejestry, które używasz podczas normalnej pracy procesorka (poza przerwaniem) obsługujesz przerwanie, potem odtwarzasz stan rejestrów i rejestru stanu no i na koniec reti... Sama procedurka obsługi przerwania nie musi wykonywać się długo, wystarczy, że zmieni jakąś zmienną w pamięci RAM, co ędzie sygnałem dla programu głównego, ze ma zacząć coś robić...
Light-I
Ah w tym pośpiechu zapomniałem...pisze w C.
W sumie to chodzi mi o konfigurację rejestrów...
GIMSK,MCUCR itd....bo w symulatorze jakoś to nie dziala...
aha a czy to norma że symulator nie reaguje na polecenie sleep ??
Ah w tym pośpiechu zapomniałem...pisze w C.
W sumie to chodzi mi o konfigurację rejestrów...
GIMSK,MCUCR itd....bo w symulatorze jakoś to nie dziala...
normalnie ustawiasz je tak, jak powinny być ustawione dla twojej konfiguracji sprzętowe, wszystko jest w nocie katalogowej i aplikacyjnej na stronie Atmela. Jak potrzebujesz notke do starszego procka, to podaj email i nie ma problemu.
kopernik8 napisał:
aha a czy to norma że symulator nie reaguje na polecenie sleep ??
Ma wyłączyć komputer ? Jakiej oczekujesz reakcji ?
Pozdr, Light-I
When the SM bit is cleared (zero), the SLEEP instruction forces the MCU into the Idle
mode, stopping the CPU but allowing Timer/Counters, Watchdog and the interrupt system
to continue operating. This enables the MCU to wake up from external triggered
interrupts as well as internal ones like Timer Overflow interrupt and Watchdog Reset.
To z notki katalogowej AT90S2313... P.S. Posługuj się proszę nomenklaturą oznaczeń not katalogowych(zamiast pisać bitX, pisz bit <tutaj jego nazwa>), to ułatwia zarówno programowanie, jak i wzajemne zrozumienie... Nazwy powinny występować w pliku nagłówkowym... (w twoim przypadku chyba "io_2313.h" lub podobnie).
Light-I
Dyskusja dotyczy przykładowego wykorzystania przerwania zewnętrznego INT0 lub INT1 w mikrokontrolerze AT90S2313, szczególnie w kontekście obsługi układu CMX612, który ma wybudzać kontroler ze stanu uśpienia i wyświetlać dane na LCD. Poruszono kwestie konfiguracji rejestrów takich jak GIMSK, MCUCR oraz prawidłowego ustawienia bitów trybu uśpienia (sleep mode) i obsługi przerwań w języku C. Zwrócono uwagę, że symulatory, w tym AvrStudio, mogą nie w pełni odzwierciedlać działanie przerwań i trybu uśpienia, dlatego lepiej testować na rzeczywistym sprzęcie. Omówiono także praktyczne zastosowania przerwań zewnętrznych, wskazując, że nie są one idealne do obsługi klawiatur mechanicznych ze względu na niestabilność impulsów, ale sprawdzają się w stabilnych sygnałach, np. barierach podczerwieni lub detekcji przejścia przez zero w regulacji fazowej. Podkreślono konieczność zachowania rejestrów i rejestru stanu w procedurze obsługi przerwania oraz stosowanie nomenklatury zgodnej z notą katalogową Atmela dla lepszej czytelności kodu. Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.