Две ноги не работают, две кнопки, я их переобозначал для одной и той же функции - обе не воспринимает. Самое удивительное, что когда другие ноги (RB0,RB1,RB2,RB3) сконфигурированы на вход для использования с АЦП (регистр AD1PCFGL за это отвечает) - они прекрасно оцифровывают сигнал с датчика тока.
1. Я случайно как то снял, даже не заметил, вообще я в коде прописывал настройки. Но нет - не помогло. Насчёт прочитать hex-код, я в жизни этого никогда не делал, сейчас попробывал, понял что ничего там не понимаю
2. Написал новый проект чисто под кнопки чтобы просто смотреть реагирует или нет МК на кнопку - и выключил оптимизацию. Не помогло, в release режиме всё равно не считывает высокий логический уровень с кнопки.
3. Я до сих пор не понял сокровенного смысла между записью в LAT регистр и PORT регистр когда он настроен как выход, может я просто схемотехнику не до конца понимаю. В самом мануале написано что при порте настроенном на выход, при записи в порт или в Лат происходит одно и тоже. Но я переопределил TEST_PIN_OUT LATDbits.LATD4, и всё равно ничего не имзенилось, ни в debug ни в release режиме.
Да мне кажется часть кода работает, просто в этом моменте if ( 0 == BUTTON_IN) что-то происходит из-за чего МК не видит высокий логический уровень.
Ещё сделал эксперимент, решил в release режиме сделать ту ножку (RB8) к которой привязана кнопка - сконфигурировать на выход и просто поддергать ей вверх и вниз. В release режиме эта ножка на выход прекрасно работает, я видел чёткий меандр, а другая ножка (RB14) которая работала на вход , так и не продолжала читать кнопку. Я думал может косяк с тем что маленькое напряжение на входе, но нет - 3.3 питание, а на вход 3.28 - так что вряд ли триггер шмитта не правильно работает.
Сообщение отредактировал Cursedsmite - Aug 23 2013, 10:29