Witam
Ponieważ nauczyłem sie zapalać i gasić lampkę, to chciałem zrobić coś lepszego. Skutek: nic nie działa. Wklejam tutaj wszystko co zrobiłem, prosze o wskazanie błędu.
Bity zegara wew:
CKSEL: 0100 czyli 8MHz
Program:
Chciałem by HyperTerminal dostawał co jakiś krótki czas dane dla testu. Hyper terminal ustawiam na 9600 bps, wybieram:
bity danych: 8
parzystość: parzyste
bity stopu: 1
sterowanie przeplywem: sprzęt
HT nic nie pokazuje.
Załączam schemat (zastanawia mnie czy na RS232 nie powinno być wyprowadzone więcej bajerów niz tylko 2 kabelki, np masa może by sie przydała??)
Ponieważ nauczyłem sie zapalać i gasić lampkę, to chciałem zrobić coś lepszego. Skutek: nic nie działa. Wklejam tutaj wszystko co zrobiłem, prosze o wskazanie błędu.
Bity zegara wew:
CKSEL: 0100 czyli 8MHz
Program:
.INCLUDE "m8def.inc"
.org 0x0000
rjmp init
init:
ldi r16, 171 ; ponyprog tak mi odczytał calibration byte
out OSCCAL, r16
ldi R16, high(RAMEND)
out SPH, R16
ldi r16, low(RAMEND)
out SPL, r16
cli
ldi r17, high(52) ;ustawienie na 9600 bps
ldi r16, low(52)
out UBRRH, r17
out UBRRL, r16
ldi r16, (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0)|(1<<UPM1)
out UCSRC, r16
ldi r16, (1<<RXEN)|(1<<TXEN)|(1<<UDRIE)
out UCSRB, r16
sei
main:
rcall wait
czekaj:
sbis UCSRA, UDRE
rjmp czekaj
ldi r16, 0xAB
out UDR, r16
rjmp main
wait:
ldi r16, 0b00000000
ldi r17, 0b11111111
loop1:
ldi r18, 0b11111111
loop2:
dec r18
cp r18,r16 brne loop2
dec r17
cp r17, r16 brne loop1
ret
Chciałem by HyperTerminal dostawał co jakiś krótki czas dane dla testu. Hyper terminal ustawiam na 9600 bps, wybieram:
bity danych: 8
parzystość: parzyste
bity stopu: 1
sterowanie przeplywem: sprzęt
HT nic nie pokazuje.
Załączam schemat (zastanawia mnie czy na RS232 nie powinno być wyprowadzone więcej bajerów niz tylko 2 kabelki, np masa może by sie przydała??)