Z powodu objętości programu musze napisać w asemblerze troche rzeczy, i mam tu problem z transmisją na rs232.
Niby cos wysyłą, ale terminal źle odbiera.
Potrzebowałbym wyświetlić jakąkolwiek daną, 1 bajtową, w pętli co 1-2 sekundy, i to mi nie dziaą.
w bascomie program testowy działą więc to nie wina rsa i max 232.
Potrzeba mi w asemblerze odpowiedznika
Dim x as byte
Do
print X
waits
loop
No dobra już działa
Na dole mam przykładowy plik, nie działa niestety.
No i to powinno powodować wyświetlanie tego co jest w r18 na okrągło, a wyśweitla jakies krzaczki
Tak jak uwtawione to kwarc 8mhz/8 = 1mhz, baud rate 2400 czyli zgodnie z pdf atmela, bit stopu 1
Niby cos wysyłą, ale terminal źle odbiera.
Potrzebowałbym wyświetlić jakąkolwiek daną, 1 bajtową, w pętli co 1-2 sekundy, i to mi nie dziaą.
w bascomie program testowy działą więc to nie wina rsa i max 232.
Potrzeba mi w asemblerze odpowiedznika
Dim x as byte
Do
print X
waits
loop
No dobra już działa
Na dole mam przykładowy plik, nie działa niestety.
.include "tn2313def.inc"
.def Temp =r16
.def Delay =r17
.def Delay2 =r18
.def acc = r19 ; r16 teraz ma nazwę acc
.def acc2 = r20
.org $000
.EQU aa=0x44
ldi r18,aa
rjmp RESET
RESET:
ldi r16,low(RAMEND)
out SPL,r16
START:
rcall RS232INIT
LOOP:
rcall RS232OUT
rcall dela
rcall dela
rcall dela
rjmp LOOP
RS232INIT:
ldi r17,0
ldi r16,206
out UBRRH,r17
out UBRRL,r16
ldi r16, (1<<RXEN)| (1<<TXEN)
out UCSRB,r16
ldi r16, (1<<UCSZ1) | (1<<UCSZ0)
out UCSRC,r16
ret
//Usart_receive:
//sbis UCSRA,RXC
//RJMP Usart_receive
//in r18,udr
//ret
RS232OUT:
sbis UCSRA,UDRE
rjmp RS232OUT
out UDR,r18
//rjmp usart_receive
//inc r18 to tak dla testu czy dobrze znaki zmienia:P
ret
DLY:
dec Delay
brne DLY
dec Delay2
brne DLY
ret
Dela : ; realizacji opóźnienia
ldi acc2,0 ; zawartość acc2 = 0
ldi acc,0 ; zawartość 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 ; powrót z podprogramu
No i to powinno powodować wyświetlanie tego co jest w r18 na okrągło, a wyśweitla jakies krzaczki
Tak jak uwtawione to kwarc 8mhz/8 = 1mhz, baud rate 2400 czyli zgodnie z pdf atmela, bit stopu 1