Witam,
temat już był nie raz poruszany na tym forum ale ja jako mocno początkujący nadal nie panuję w pełni nad kodem.
Mianowicie w projekcie chcę użyć bibliotek P. Mirka MK_TERMINAL. I to nie pierwszy raz - większość projektów testuję z użyciem terminala, bo to metoda genialna jak nie ma się wystarczająco "obfitego" wyświetlacza.
Jednak od kilku już dni nie mogę sobie z tym poradzić, a zachowanie układu po wgraniu wsadu doprowadza mnie do rozpaczy.
Poniżej prosty i oczywisty - tak mi się wydaje - kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
No i problem polega na tym, że kiedy używam tylko przerwania INT0 (przełączenie przekaźnika - taki debuger zamiast diody) to wszystko ładnie działa. Ale jak tylko dodam inicjalizację UART - USART_Init( __UBRR ), to blokują mi się przerwania od INT0. Dodatkowo na terminalu nie wyświetla się tekst ale ekran się czyści.
Co ciekawe... co jakiś czas jak zakomentuję inicjalizację UART-a to nadal mam zablokowane INT0. Pomaga tylko przekopiowanie do nowego projektu.
Próby wykonywałem na docelowym układzie, który już wielokrotnie dobrze działał z innym bardzo podobnym kodem ale też testuję na zestawie ATB rev. 1.04
Wiem, że takie efekty pojawiają się kiedy używamy przerwanie w przerwaniu, a biblioteki z książki do UART są o nie oparte. Jednak ja tutaj tylko ustawiam flagę w przerwaniu, a resztę operacji wykonuję w pętli while(1).
Nie potrafię doszukać się miejsca w którym popełniam błąd - może ktoś z szanownych Forumowiczów pochyli się nad moim problemem i nakieruje mnie na właściwe tory.