Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Чёта глючу... Помогите найти ошибку в исходнике (+)
Отправлено
Спунер 29 апреля 2008 г. 18:09
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 ; СТОП
Составить ответ | Вернуться на конференцию
Ответы