К тому же вопрос не совсем по ассемблеру наверно, а больше по протеусу.
Начало проблемы: решил в протеусе собрать схемку http://www.ua4nx.qrz.ru/lcd.htm.
Началось все с того, что при симуляции нарисованной схемы по программе http://www.ua4nx.qrz.ru/fail/LCD.zip
сначала ошибка в логе.(рис1). Это касалось строчки .def z =r19; Ограничение времени приема 40 битов.
Переменной Z я в программе не нашел, и я ее забил ";" после чего лог протеуса был без ошибок, но почему-то вывод 8 контроллера находился в 3-ем состоянии и соответственно индикация не работала. Решил может глюк какой в модели конкретного контроллера решил попробовать на другом контроллере(другой модели).
Включил AT90S2313 на той же программе, только изменил .DEVICE. При этой симуляции тоже индикации нет и появляется лог (рис.2)
Сделал вывод, что в данном случае проблема в стеке и попытался добавить туда строчки:
.def temp =r24 регистр 24 вроде нигде не используется в программе.
ldi temp, Ramend ;
out spl,temp
При попытке симуляции появляется лог (рис.3)
Кстати to GP1:заменил spl на sp - пропала ошибка "неопределенный символ" напротив этой строчки. Лог стал (рис.4) и кстати как подключить *.inc файл? потому что слабо представляю где его искать:(
напоследок попробовал с Attiny2313 той же программой (без строчек про стек, но .DEVICE поправил) индикация появилась, но кривоватая и судя по описаниям на контроллеры - там придется программку доработать(разные биты в регистрах таймера и прерывания разные....
- Вложения
-
- 4.jpg
- (55.84 КБ) 307 скачиваний
-
- 3.jpg
- (55.6 КБ) 310 скачиваний
-
- 2.jpg
- (210.42 КБ) 227 скачиваний
-
- 1.jpg
- (67.27 КБ) 336 скачиваний



