Witam
Zaczynam dopiero z AVR. Chciałem uzyskac miganie diody, mam takie wpisy, nie mam pojęcia co jest nie tak. Teoretycznie w AVR Studio "mruga", ale nie wiem czy to nie sa za małe opóźnienia. Generalnie ma mrugac caly PORTB ( na razie bez uzywania Timera)
.noolist
.include "m8def.inc"
.list
.listmac
.def acc = r16 ; r16 teraz ma nazwę acc
.def acc2 = r17 ; r17 teraz ma nazwę acc2
.cseg ;
.org 0 ;
rjmp Reset;
Delay :
ldi acc2,0
ldi acc,0
Del_0 :
inc acc ; zwiększ zawartość acc
brne Del_0 ; skocz gdy acc różne od 0
inc acc2 ; zwiększ zawartość acc2
brne Del_0 ; skocz gdy acc2 różne od 0
ret
Delay2:
ldi acc2,0
ldi acc,0
Del_02 : ;
inc acc ; zwiększ zawartość acc
brne Del_02 ; skocz gdy acc różne od 0
inc acc2 ; zwiększ zawartość acc2
brne Del_02 ; skocz gdy acc2 różne od 0
ret
Reset:
cli
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPL, r16
Main:
ldi r20,0xFF ;LEDPin=1 to LED zgaszony
out DDRB,r20
out PORTB,r20
rcall Delay
ldi r20,0xFF
out DDRD,r20
ldi r20,0x00
out PORTB,r20
rcall Delay2
rjmp Main ;
.exit
ps
diody sa podlaczone na plytce uruchomieniowej przez opornik do masy, nie do plusa
Zaczynam dopiero z AVR. Chciałem uzyskac miganie diody, mam takie wpisy, nie mam pojęcia co jest nie tak. Teoretycznie w AVR Studio "mruga", ale nie wiem czy to nie sa za małe opóźnienia. Generalnie ma mrugac caly PORTB ( na razie bez uzywania Timera)
.noolist
.include "m8def.inc"
.list
.listmac
.def acc = r16 ; r16 teraz ma nazwę acc
.def acc2 = r17 ; r17 teraz ma nazwę acc2
.cseg ;
.org 0 ;
rjmp Reset;
Delay :
ldi acc2,0
ldi acc,0
Del_0 :
inc acc ; zwiększ zawartość acc
brne Del_0 ; skocz gdy acc różne od 0
inc acc2 ; zwiększ zawartość acc2
brne Del_0 ; skocz gdy acc2 różne od 0
ret
Delay2:
ldi acc2,0
ldi acc,0
Del_02 : ;
inc acc ; zwiększ zawartość acc
brne Del_02 ; skocz gdy acc różne od 0
inc acc2 ; zwiększ zawartość acc2
brne Del_02 ; skocz gdy acc2 różne od 0
ret
Reset:
cli
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPL, r16
Main:
ldi r20,0xFF ;LEDPin=1 to LED zgaszony
out DDRB,r20
out PORTB,r20
rcall Delay
ldi r20,0xFF
out DDRD,r20
ldi r20,0x00
out PORTB,r20
rcall Delay2
rjmp Main ;
.exit
ps
diody sa podlaczone na plytce uruchomieniowej przez opornik do masy, nie do plusa