[ASM] Attiny13 INT0 Interrupt im Simulator nur sporadisch

OP #3860401
Lesenswert?
• ▲
▼
Hey, ich wollte mal Interrupts ein bisschen verinnerlichen
und habe dann folgendes Programm geschrieben.

Allerdings bleibt er bim simulieren mit F10 im loop,
aber mit f5 springt er nach 17 "clocks" bzw ticks direkt in
die Instruktion o0.

Habe schon versucht während der Simulation das Interrupt Flag
im GIFR (Bit 6) zu ändern, ebenfalls den PINB1, aber das hat
auch nicht gefruchtet.

Ich nutze Atmel Studio 6.1

Hat da jemand ne Erklärung für, oder kann mir jemand einen Tipp geben ?

1
.nolist
2
.include "tn13def.inc"
3
.list
4

5
.org 0x000
6
       rjmp init
7
.org INT0addr                 ; External Interrupt0 Vector Address
8
       rjmp intvec                  ; IRQ0 Handler
9
        
10
 init:
11
 .def tmp = R16 ; GeneralPurposeRegister
12

13
 ldi r16, 0x1D  ;PB1 Transistor(Relais/Motor), PB2 LEDGrün, PB3 LEDGelb, PB4 LEDRot
14
 out DDRB, r16  ; Schreibe PB's nach DDRB
15
 sbi PORTB, (1<<PB1) ; Pullup -> Taster zieht nach GND/Low
16
 ldi r16,0x40   ; Für INT0-Bit (6)
17
 out GIMSK, r16 ; Enable INT0
18
 sei
19
 rjmp loop
20

21
loop:
22
nop
23
rjmp loop
24

25
intvec: 
26
sbi PORTB, (1<<PB2)
27
reti

Vielleicht OT, aber nicht wert ein neues Thema zu eröffnen.
Sind die Operanden bei sbi (1<<DDRx) begrenzt ?

Ab DDRB4 gibts immer einen "Out Of Range Error"
Ebenfalls bei sbi da gibts ab PORTB4 bei mir auch einen
Out of Range Error.



LG,
M. Berghaus
Gast #3860460
Lesenswert?
• ▲
▼
Hi

>Vielleicht OT, aber nicht wert ein neues Thema zu eröffnen.
>Sind die Operanden bei sbi (1<<DDRx) begrenzt ?

Ja. SBI verwendet Bitnummern (0..7). Also nichts shiften.

Syntax:

SBI A,b    0 ≤ A ≤ 31,   0 ≤ b ≤ 7

MfG Spess

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.