Problem z przerwań w 89S8252

B

Bukitoo

Guest
Hi! Jestem bardzo mylić! Muszę używać przerwań w 89s8252 projektu. Gdy przerwanie występuje, mam do odbioru danych, a stan jego wykończenie innego przerwania zdarzenia (takie same). Chcę wiedzieć, co się dzieje, gdy nazywam przerwania, jeśli to samo przerwanie wystąpić podczas Int. nie opublikował rutynowych gotowy. Dzięki!
 
Ponieważ jesteś pozyskiwania danych z przerwania, a następnie pojawia się kolejny, z tego samego przerwania, co powoduje uruchomienie przerwania procesu całym, prawdopodobnie będzie zacząć od początku zapisu danych, jeśli nagranie go gdzieś. Jeśli masz, aby uchwycić każdy fragment danych, które mogą przeszkodzić w procesor, to polecam utworzenie bufora danych pewnego rodzaju. Gdy przerwania zostanie wywołany, wyłącz przerwanie na rutynowe początku, a następnie sprawdzić bufor przed zamknięciem tego przerwać, aby zobaczyć czy mają więcej danych wejdźcie Jeśli to wiesz, że masz więcej do przetwarzania. Jeśli nie masz, aby uchwycić każdy fragment danych i jest ok stracić kilka pakietów informacji, to po prostu wyłącz przerwanie na początku, że rutynowych i włącz go z powrotem przed zamknięciem, że rutynowych. W ten sposób niemożliwe jest to, aby przerwać znowu i spowodować, aby uzyskać błędów lub awarii. Wystarczy upewnić się, przerwania zostanie ponownie włączone, gdy skończysz i sprawdź, czy przerwać flaga jest reset. Jeśli nie możesz infinately przerwania. POWODZENIA!! :)
 
Jest to bardzo dziwne! Mam skonfigurowane 8051 jako przerwanie stoku. więc kiedy przerwać wystąpić sprawdzić zmiennej w pamięci, aby sprawdzić czy, że przerwanie zostało już miejsce. Jeśli zmieniły się, wracam do programu głównego. I tego zrobić, bo muszę wyłączyć przerwania trochę czasu między ocurrences. Problem polega na tym, że przerwanie ocurrs dwa razy, a nie jedną jak chcesz! : Roll:
 
Możesz wysłać mi kod przerwania przez PM, może uda mi się pomóc. pozdrawiam
 

Welcome to EDABoard.com

Sponsor

Back
Top