Witam. Walczę właśnie z programem do PWM opisywanym parę postów niżej. Postanowiłem jednak założyć nowy temat bo komuś może się przydać do innych projektów. Mianowicie problem jest z przerwaniem od uarta w M169 wydaje mi się że wszystko ustawiłem poprawnie jednak wymuszenie przerwania w symulacji nie powoduje skoku do wektora.
Pytanie o czym zapomniałem ? Pisałem już kiedyś podobny program tylko na M16 i tam działało to normalnie. Skonfigurowałem testowo kilka innych przerwań w ten sam sposób i sprawdziłem czy chodzą i o dziwo działają poprawnie zaczynam więc podejrzewać albo błąd w symulatorze albo jakąś głupotę której nie widzę.
Edit: Jest błąd w symulatorze. Program wgrany do procesora wykonuje przerwanie.
.include "m169def.inc"
.def temp = R16
.cseg
.org 0
rjmp ResetProcessor
.org 0x001A
jmp uartrxc ;przerwanie od UART-a (odbiór)
.org 0x002e
ResetProcessor:
;stos
ldi r16,LOW(RAMEND) ;
out SPL,r16 ;
ldi r16,HIGH(RAMEND) ;
out SPH,r16
;uart 1Megabit
ldi temp,0
sts ubrr0H,temp
ldi temp,0
sts ubrr0L , temp
;aktywacja RXD i przerwania
ldi temp,(1<<rxen)|(1<<rxcie)
sts ucsrb,temp
; Set frame format: 8data, 1stop bit
ldi r16, (0<<USBS)|(3<<UCSZ0)
sts UCSRC,r16
sei
reszta programu
Pytanie o czym zapomniałem ? Pisałem już kiedyś podobny program tylko na M16 i tam działało to normalnie. Skonfigurowałem testowo kilka innych przerwań w ten sam sposób i sprawdziłem czy chodzą i o dziwo działają poprawnie zaczynam więc podejrzewać albo błąd w symulatorze albo jakąś głupotę której nie widzę.
Edit: Jest błąd w symulatorze. Program wgrany do procesora wykonuje przerwanie.