Databladet till sensorn jag har köpt finns här:
http://www.parallax.com/dl/docs/prod/au ... r-V1.1.pdf
Enligt databladet så ska sensorn skicka ut ett högt värde vilket man sedan kan läsa in på uC.
uC jag använder är en Mega88:
http://www.avrfreaks.net/index.php?modu ... l=&iid=423
Så här ser min kod ut:
Kod: Markera allt
.org 0x0000 ;Start adressen
.INCLUDE "m88def.inc" ;Inkluderar filen för uC
.DEF Temp = r18 ;Definerar ett tempregister
.Def Delay2 = r19
.Def Delay = r20
ldi Temp, HIGH(RAMEND) ;Sätter stacken, eller något sådant
out SPH, Temp
ldi Temp, LOW(RAMEND)
out SPL, Temp
ser Temp ;Sätter diodportarna till ut
out DDRB, Temp
ldi Temp, 0b11111110; Sätter port ett till ingång
out DDRC, Temp
rjmp main ; Hoppar till start
main:
rcall slack_gul ;Släcker gul diod
rcall gron_diod ; Tänder grön diod
sensor:
in Temp, PINC ;Kontrollerar ifall något rör sig
cpi Temp, 0x00
breq sensor ;Om inte hoppar tillbaka till start
rcall gul_diod ; Hoppar för att tända gul diod
rjmp main ; Hoppar tillbaka till start
gron_diod:
sbi PORTB, 0 ;Tänder grön diod
ret ;Hoppar tillbaka
gul_diod:
sbi PORTB, 1 ;Tänder gul diod
ret ;Hoppar tillbaka
slack_gul:
cbi PORTB, 1 ;Släcker gul diod
ret ;Hoppar tillbaka
DLY:
dec Delay
brne DLY
dec Delay2
brne DLY
ret
Kod: Markera allt
in Temp, PINC ;Kontrollerar ifall något rör sig
cpi Temp, 0x00
breq sensor ;Om inte hoppar tillbaka till start
Jag har f.ö kopplat en diod till PB0, den lyser som den ska.
Sedan så har jag en till PB1, men den lyser inte alls.
Sist men inte minst så har jag kopplat in sensorn till port PC0.
Vad skulle kunna vara felet, varför lyser inte dioden PB1 när man viftar på armarna?