geht nicht : (( Anfängerhilfe

Gast #115990
Lesenswert?
• ▲
▼
Hallo,

dieses kleine Programm soll nur einen Pin von H auf L setzen.Funzt
nicht .Was mache ich falsch ?

.CSEG
.ORG 0000

  rjmp main

main:

  ldi r16,low(ramend)    ;StackPointer auf Ramend
  out spl,r16
  ldi r16,0b00000010  ;PortB PB1 als Ausgang setzen
  out DDRB,r16    ;Richtungsregister setzen
  clr r16

loop:   sbi PORTB,1          ;High an Port B Pin1  ausgeben
  rcall wait    ;wartschleife aufrufen
  cbi PORTB,1    ;low an Port B
  rjmp loop    ;Schleife neu beginnen


wait:
          ldi  R17, $1F    ;0.001 s = 5000Khz
WGLOOP0:  ldi  R18, $55
WGLOOP1:  dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
          nop
          nop
    ret




Vielen Dank....

sagt der Lehrling
Gast #115993
Lesenswert?
• ▲
▼
Hi,

loop:
    sbi PORTB,1  ;High an Port B Pin1  ausgeben
    rcall wait   ;wartschleife aufrufen
    cbi PORTB,1  ;low an Port B
    rcall wait   ;warteschleife aufrufen
  rjmp loop    ;Schleife neu beginnen

Ich glaub Du willst das so haben.

Cya
Carp

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren