Vet inte vad det betyder. Skulle du vilja förklara?
Har stött på ett problem till för övrigt.
Kod: Markera allt
.include "8515def.inc"
.cseg
.org $0000
rjmp reset
;.org INT0
; rjmp select
;.org INT1
; rjmp doit
.org ovf0ADDR
rjmp sweep
.def temp=r16
.def eeadr=r17
.def delay=r18
.def baseee=r19
.def temp2=r20
.def temp3=r21
.def teckenh=r22
.def teckenl=r23
Reset:
ldi r16,high(RAMEND);RAM Stack init
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
;Speca outputs
ser temp
out ddra, temp
out ddrb, temp
out ddrc, temp
ldi temp, 240 ;fyra övre bitarna ut
out ddrd, temp
;Init UART
ldi temp, 47
out UBRR, temp
sbi UCR, TXEN
sbi UCR, RXEN
clr temp
out portc, temp
clr eeadr
out EEARL, eeadr
;Init interrupts
ldi temp, 192
out GIMSK, temp
;Init timer0
ldi temp, 0b00000100
out TCCR0, temp
ldi temp2, 128
ldi temp3, 128
rjmp main
sei
main:
sbis pind, 3
rcall doit
sbis pind, 2
rcall select
in temp, UDR
cpi temp, 1
--> breq prog
rjmp main
sweep:
mov eeadr, baseee
clr temp
out TCNT0, temp
ldi temp2, 128
ldi temp3, 128
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
cbi pinc, 0
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
reti
prog:
cli
in temp, UDR
cpi temp, 4
--> breq main
out EEARL, baseee
mov eeadr, baseee
sbi EECR, EEMWE
out EEDR, temp
sbi EECR, EEWE
inc eeadr
nop
nop
nop
rjmp prog
Select:
rcall delay
sbis pind, 2
rcall delay
sbis pind, 2
rjmp select
;härunder
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
ret
Doit:
rcall delay
sbis pind, 3
rjmp doit
rcall delay
;härunder
ret
delay:
inc delay
cpi delay, 255
brne delay
clr delay
ret
loadtecken:
sbi EECR, EERE
in teckenh, EEDR
inc eeadr
out EEARL, eeadr
sbi EECR, EERE
in teckenl, EEDR
inc eeadr
out EEARL, eeadr
ret
Koden är väl inte så snygg nej. Klaga inte på hur jag adderar 32 till ett register
. Är just nu inte i stånd att förstå hur jag ska göra annars.
Men iallafall. Där jag har satt pilar får jag felet "Relative branch out of reach". Misstänker att det är något med stackpekaren. Vad betyder det och hur ska jag åtgärda det?