Провел несколько незабываемых дней решая (так и не решив) следующую проблему:
Имеется PIC24HJ256GP610T. И имеется вот такой простельник листинг программы:
void main()
{
AD1PCFGL = 0xFFFF; //Отключаем от порта B АЦП
AD1PCFGH = 0xFFFF; //Отключаем от порта B АЦП
TRISE=0; //настройка E4 на выход
TRISB=0b0000000000000011; //B0..B1 настроим как входы
while(1)
{
PORTEbits.RE3=PORTBbits.RB0;
PORTEbits.RE4=PORTBbits.RB1;
}
}
К портам B1 и B0 подключен энкодер. На порты E3 и E4 копирую считанное состояние.
В режиме Debug всё отлично, а вот в режиме RunTime порт B всегда считывается как ноль и всё тут. Все остальные порты ведут себя нормально.
Перекидывал енкодер на остальные ножки порта B - та же история, не видит и всё тут!
Смена PORTB на LATB не дало результата.
Жду Ваших предложений/предположений.