|
Прошу помощи |
|
|
|
Feb 13 2007, 13:23
|
Группа: Новичок
Сообщений: 2
Регистрация: 13-02-07
Пользователь №: 25 298

|
Уважаемые форумчане, объясните, пожалуйста, "чайнику" в чем прикол (или прокол?). Программка простая, как два пальца, по идее должна вывести в порт RS232 удвоенное количество байтов от числа, находящегося в счетчике (регистр Z). Реально же выводится 4608, т.е. четвертая часть. Где я допустил ошибку? Пробовал также на Mega8 - результат тот же.
.include "2333def.inc" .def Tmp =r16 .cseg .org 0 reset: clr Tmp out UBRRH,Tmp ldi Tmp,$19 out UBRRL,Tmp ;Настройка скорости СОМ-порта
clr Tmp out UCSRA,Tmp ldi Tmp,$18 out UCSRB,Tmp ;Настройка UART
in Tmp,WDTCR ori Tmp,$18 out WDTCR,Tmp clr Tmp out WDTCR,Tmp ;Отключение WDT
ldi Tmp,$20 out DDRC,Tmp ;Определение линии порта С как выход cbi PortC,5 ;Включить светодиод ldi ZL,Low(9216) ldi ZH,high(9216) ;Загрузка счетчика байтов Loop: subi ZL,1 sbci ZH,0 ;Декремент счетчика Wait1: sbis UCSRA,UDRE ;Ожидание готовности UART rjmp Wait1 out UDR,ZH ;Вывод старшего байта счетчика Wait2: sbis UCSRA,UDRE ;Ожидание готовности UART rjmp Wait2 out UDR,ZL ;Вывод младшего байта cpi ZL,0 ldi Tmp,0 cpc ZH,Tmp ;Проверка счетчика на 0 brne Loop ;Не 0 - возврат sbi PortC,5 ;Иначе - выключить светодиод и Cycle: rjmp Cycle ;зациклить программу
|
|
|
|
|
 |
Ответов
|
Feb 13 2007, 14:42
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
2 Maks448: Цитата ldi ZL,Low(9216) ldi ZH,high(9216) ;Загрузка счетчика байтов: Z = 9216 (0x2400); Loop: subi ZL,1 sbci ZH,0 ;Декремент счетчика: Z = 9215 (0x23FF) Wait1 out UDR,ZH ;Вывод старшего байта счетчика (0x23) Wait2 out UDR,ZL ;Вывод младшего байта (0xFF) brne Loop ;Не 0 - возврат Т.е. первым выведенным числом будет 9215, так??? Или у мну глюки? А как Вы тогда ожидаете, что прога выведет удвоенное содержимое Z? Объясните, пожалуйста. И по-прежнему вопрос: а чем смотрите? 2 rx3apf: Нда, че-то я гоню...
|
|
|
|
Сообщений в этой теме
Maks448 Прошу помощи Feb 13 2007, 13:23 IgorKossak Банальный вопрос - в AVRStudio пробовали просимули... Feb 13 2007, 13:33 Leen Во-первых: а как это 9216/4=4608? Калькулятор и ур... Feb 13 2007, 14:16 rx3apf Цитата(Maks448 @ Feb 13 2007, 13:23) Уваж... Feb 13 2007, 14:26 GDI Так он же и передает содержимое, собственно , реги... Feb 13 2007, 15:04 rx3apf Цитата(GDI @ Feb 13 2007, 15:04) Так он ж... Feb 13 2007, 15:25 =GM= Цитата(Maks448 @ Feb 13 2007, 10:23) Уваж... Feb 13 2007, 15:43 rx3apf Цитата(=GM= @ Feb 13 2007, 15:43) Команда... Feb 13 2007, 16:07  =GM= Цитата(rx3apf @ Feb 13 2007, 13:07) Цитат... Feb 13 2007, 18:22   rx3apf Цитата(=GM= @ Feb 13 2007, 18:22) По-моем... Feb 13 2007, 19:20    =GM= Был не прав. Признаю. Флаг Z в команде cpc формиру... Feb 13 2007, 19:52     rx3apf Цитата(=GM= @ Feb 13 2007, 19:52) Был не ... Feb 13 2007, 20:15      Maks448 Друзья! Дико извиняюсь за глупый, видимо вопро... Feb 14 2007, 12:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|