Здравствуйте, подскажите в чём может быть проблема
прошиваю Attiny2313 следующим кодом
Код:
.include "tn2313def.inc" ; Присоединение файла описаний
.def temp=r18
ldi temp, 0x7F ; Выбор адреса вершины стека
out SPL, temp ; Запись его в регистр стека
;---------- настройки портов
LDI temp,0
out DDRD,temp
LDI temp,0xFF
out PORTD,temp
;----------; главный цикл
rcall uart_init
main:
LDI r16,'5'
rcall uart_snt
Rjmp main
;----------
uart_init:
LDI R16,00
OUT UBRRH,R16
LDI R16, 0x33
OUT UBRRL,R16 ; скорость передачи 9600 при частоте 8Мгц
; включение приёмника передатчика
LDI R16,(1<<RXEN)|(1<<TXEN)
OUT UCSRB,R16
; установка форматата 8 бит данных 2 стоповых бита
LDI R16,(0<<USBS)|(3<<UCSZ0)
OUT UCSRC,R16
RET
uart_snt:
SBIS UCSRA,UDRE ; Пропуск если нет флага готовности
RJMP uart_snt ; ждем готовности - флага UDRE
OUT UDR, R16 ; шлем байт
RET
просто передавать число 5 но вот на практике чего-то не получается то нечего не принимается, то мгновенно много значений (всякие разные но не число 5 =) в основном нулей много )
во фьюзах галочку делить на 8 убрал =)
вот то что принимается каким-то не понятным образом(в основном это бывает когда заденешь провод питания ну не всегда)
Код:
0
0
16
3
0
0
0
193
12
0
16
0
4
0
3
0
0
0
1
128
16
3
0
0
0
1
128
16
3
0
16
3
0
0
0
0
16
0
12
0
24
1
64
0
24
119
255
140
7
0
12
227
0
128
0
236
0
128
0
136
0
0
8
0
128
27
0
128
0
240
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
160
0
0
0
254
0
0