Новичок
Регистрация: 01.09.2013
Сообщений: 16
Репутация: 11
|
МК 12f683
Не получается снять сигнал с некоторых ножек GPIO Программа простецкая. Ждём сигнал с любой ножки, после этого подаём сигнал на все ножки сразу. Код:
//12f683.h #include <pic.h>; __CONFIG(MCLRDIS & WDTDIS & INTIO); void main() { TRISIO = 0b11111111; ANSEL = 0b0000111; while (!(GPIO0 || GPIO1 || GPIO2 || GPIO3|| GPIO4|| GPIO5)) { _delay(10); } TRISIO = 0; GPIO = 0b11111111; while (1) { } } При подаче сигнала на любую из оставшихся трех ножек, всё работает, как ожидалось. Вопрос: Почему сигнал не снимается с первых трех ножек? Поменял на ANSEL = 0; Заработала 3я ножка (GP2), первые две по прежнему не работают Всё спасибо, разобрался! Нужно было ещё компаратор отключить CMCON = 0x07
Последний раз редактировалось valerik88; 01.12.2013 в 10:38.
|
||
Оценка
|
Новичок
Регистрация: 09.12.2012
Сообщений: 2
Репутация: 10
|
Знакомая проблема, сам когда-то мучался с этим. Но прочитал внимательнее даташит и всё встало на свои места.
|
||
Оценка
|
Знаток
|
Ну все верно, в даташите на любой PIC с компаратором написано и в рамку обведено, что порты с компаратором, не могут работать как Digital если не сконфигурировать компараторы.
P.S. Молорик, Валерик, на Си перешел.
__________________
"Словом можно убить, словом можно спасти, Словом можно полки за собой повести." (с) Шефнер Вадим |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |