Har nu försökt få igång UART-kommunikation mellan två 90S8515. Det fungerar hyggligt men jag har ett problem, det är att lysdioderna på mottagarprocessorn verkar ta in störningar.
På sändningsprocessorn kan jag genom en extern knapp välja att den skickar antingen 0xFF eller 0x00. Skickar jag 0xFF börjar lysdioderna på mottagardelen lysa men blinkar ungefär 2 gånger i sekunden.
Sänder jag 0x00 så slocknar de men kan flasha till nån gång emellanåt. Varför lyser inte dioderna med ett fast sken när jag skickar 0xFF och är helt släckta när jag skickar 0x00?
Det verkar som att den sänder rätt värden men flippar ur någon gång i sekunden.
Jag har stirrat mig blind på detta nu och har kört slut på idéer. Nån som har några tankar att komma med?
Koden ser ut så här:
Mottagardel, laddas i ena processorn
Kod: Markera allt
.include "C:\Program\Atmel\AVR Tools\AvrAssembler\Appnotes\8515def.inc"
;.CSEG
.ORG $000
rjmp init
init:
ldi R16,RAMEND
out SPL,R16
ldi R16,0xFF
out DDRA,R16
ldi R16,95
out UBRR,R16
ldi R16,0b00011000
out UCR,R16
clr R16
;sbi USR,RXC
main:
sbic USR,RXC
in R16,UDR
out PORTA,R16
rjmp main
Kod: Markera allt
.include "C:\Program\Atmel\AVR Tools\AvrAssembler\Appnotes\8515def.inc"
;.CSEG
.org $0
rjmp init
init:
ldi R16,RAMEND
out SPL,R16
ldi R16,0b00000011
out DDRA,R16
ldi R16,0
out DDRC,R16
ldi R16,95
out UBRR,R16
ldi R16,0b00011000
out UCR,R16
ldi R16,0
out UDR,R16
main:
sbic USR,TXC
call send
sbic PINC,PC0
ldi R16,0xFF
sbis PINC,PC0
ldi R16,0
rjmp main
send:
out PORTA,R16
sbi USR,TXC
out UDR,R16
ret
p.s. vad är skillnaden mellan UART och USART?