Собрал простейшую схему на 2ух ATmega48 один передает, другой принимает днные по UART. Алгоритм принимающей микросхемы построен по принципу: принял данные установил на выходе 1,пауза в 1мкс, сбросил на выходе. Частота передаваемых данных по UART 20мс. НО! Микросхеммы - приемник работает не правильно: приняла данные, установила бит на выходе,пауза,сбросила бит,установила бит,пауза,сбросила бит.
Листинг прерывания принятого по UART:
UART_RXC:
sts RamTemp1,rTemp1
in rSreg,SREG
cbr rSTATUS,1<<IndEnd
lds rTemp1,UCSR0A
cbr rTemp1,1<<RXC0
sts UCSR0A,rTemp1
lds rTemp1,RamTemp1
out SREG,rSreg
reti
Кусок программы по обработе данных:
;инициализация и настройка
Programma:
sbrc rSTATUS,IndEnd
rjmp Programma
sbi PORTD,7
nop
nop
nop
nop
nop
nop
nop
nop
cbi PORTD,7
sbr rSTATUS,1<<IndEnd
rjmp Programma
В чем загвоздка подскажите.
Данные по UART приходят 1 раз в 20мс -я проверял по осцилографу.
Листинг прерывания принятого по UART:
UART_RXC:
sts RamTemp1,rTemp1
in rSreg,SREG
cbr rSTATUS,1<<IndEnd
lds rTemp1,UCSR0A
cbr rTemp1,1<<RXC0
sts UCSR0A,rTemp1
lds rTemp1,RamTemp1
out SREG,rSreg
reti
Кусок программы по обработе данных:
;инициализация и настройка
Programma:
sbrc rSTATUS,IndEnd
rjmp Programma
sbi PORTD,7
nop
nop
nop
nop
nop
nop
nop
nop
cbi PORTD,7
sbr rSTATUS,1<<IndEnd
rjmp Programma
В чем загвоздка подскажите.
Данные по UART приходят 1 раз в 20мс -я проверял по осцилографу.
