Свежие обсуждения
Микроконтроллеры

Чёта глючу... Помогите найти ошибку в исходнике (+)

ldi XL , 0 ; Счётчик переданных байт
clr R13 ; Обнулить счётчик ошибок
; -----------
Loop :
wdr

out UDR , XL ; Содержимое посылаемого в UART байта равно номеру байта (тестовый пакет)

; Задержаться на определённое время перед началом чтения байта полученного UART
call delay_on_10mS

in R24 , UDR ; Прочитали принятый UART-ом байт

cp R24 , XL ; Сравнили с тем, что передавали

; *******************************************************
; *******************************************************
; *******************************************************

breq Counter_handled ; Ошибок нет !!!! R13 == 0 А если заменить на brne Stop_Programm, то есть ошибки

; *******************************************************
; *******************************************************
; *******************************************************
inc R13

Counter_handled :
inc XL
cpi XL , 255
brlo Loop ; ещё не все 255 байт передали

ldi XH , 1 ; Порог для числа ошибок
cp R13, XH
brsh Stop_Programm ; число ошибок равно либо выше критического значения - не зажигаем светодиод

Swetodiod_ON : ; Зажигается только если ошибок нет (R13 == 0)
sbi ddRB , 1
cbi PortB , 1

Stop_Programm :
cli
wdr
rjmp PC-0x01 ; СТОП

 

Ошибку нашёл.... Перегрелся я чёта... Раз так плюхи стал делать.. Тему можно в мусорку