| Форум РадиоКот https://radiokot.ru/forum/ |
|
| PIC18F45K22 не могу сбросить ANSELx в 0 https://radiokot.ru/forum/viewtopic.php?f=58&t=147807 |
Страница 1 из 1 |
| Автор: | abrrvalk [ Чт авг 24, 2017 17:15:04 ] |
| Заголовок сообщения: | PIC18F45K22 не могу сбросить ANSELx в 0 |
Доброе время суток! Взгляните, пожалуйста, свежим взглядом со стороны. При начальной инициализации настраиваю порты. Кроме прочего нужно подключить цифровые входы сбросом соответствующих ANSELx в 0. Код Код: movlw 0x00 movwf 0xF38 movwf ANSELA bcf ANSELA, 0 bcf ANSELA, 1 bcf ANSELA, 2 bcf ANSELA, 3 Не меняет значение регистра. С другими аналогичными регистрами ситуация та же. Цифровые порты, соответственно, на вход тоже не работают. Состояние регистров смотрю через watch в MPLAB 8.92 + PICkit3. С остальными регистрами всё работает штатно. То ли это какой-то не документированный баг, то ли я что-то проглядел в даташите, хотя, вроде, просмотрел его полностью. До этого имел дело с другими пичками 18й серии - никаких проблем никогда не было, а тут буксую на ровном месте. Добавлено after 2 hours 13 minutes 48 seconds: Разобрался сам. Может, кому пригодится. Ответ крылся в разделе Memory organization (не ожидал там увидеть что-то новое): Цитата: Addresses F38h through F5Fh are also used by SFRs, but are not part of the Access RAM. Users must always use the complete address or load the proper BSR value to access these registers. Регистры с указанными адресами не попали в страницу быстрого доступа (Access RAM) и для них надо использовать страничную адресацию с использованием BSR или команды использующие полный адрес (movff) Рабочий вариант кода: Код: movlw 0x00 movff WREG, ANSELA PS Надо читать даташит еще внимательней. |
|
| Автор: | КРАМ [ Чт авг 24, 2017 20:05:30 ] |
| Заголовок сообщения: | Re: PIC18F45K22 не могу сбросить ANSELx в 0 |
В догон. Команда записи литерала в BSR: movlb <номер банка>
|
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


