Darius_ 0 28 марта, 2020 Опубликовано 28 марта, 2020 · Жалоба Всем добрый день. Пишу код для считывания АЦП у микроконтроллера, вроде все норм и тут выскакивает ошибка invalid registeri на ADCH и ADCL. Оказалось они задействованы в memory mapped микроконтроллера и теперь даже не знаю как их вытащить от туда. Такая же ошибка была и на команду out, но с ней я справился быстро заменив на sts, а вот на команду in r17, ADCH; прочитать из регистров in r18, ADCL out PortD, r17 программа сильно ругается. Я пробовал через ld, но это тоже не помогает. Может кто подскажет как быть. Слышал, что макрос может помочь. но я не разу его не писал, и не имею понятия как его тут задействовать. Помогите, пожалуйста! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 28 марта, 2020 Опубликовано 28 марта, 2020 · Жалоба lds r17,ADCH lds r18,ADCL должно работать, а команды in и out до этих регистров "не дотягиваются". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 28 марта, 2020 Опубликовано 28 марта, 2020 · Жалоба Обратите внимание, что сначала нужно читать ADCL и только потом ADCH. (Даташит на ATMEGA48_88_168, стр.258) 1 час назад, Darius_ сказал: выскакивает ошибка invalid registeri на ADCH и ADCL. А Вы подключили include-файл ? .includepath "/usr/share/avra/" ; Путь к инклюдам .include "m168def.inc" ; Инклюд для ATMEGA186 Ну или опубликуйте свой код. Так людям будет легче помочь Вам. (Не стесняйтесь того, что ваш код может оказаться далёким от совершенства. Все мы когда чего-то не знали и делали очень глупые ошибки. Стыдиться надо не незнания, а того, что не хочешь знать.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться