2016-12-09 18 views
0

Как говорится в этом вопросе, я хочу реализовать ICN (уведомление об изменении ввода) для цифрового входного штыря.dsPic33E: Как внедрить уведомление об изменении ввода на цифровой вход?

Я использую dsPic33EP512GM604.

Я сконфигурировал контакт < 22> RB1 ​​как входной контакт.

ИК-датчик подключен к тому же разъему. Я ищу способ (кроме опроса), чтобы получить прерывание всякий раз, когда датчик обнаруживает объект (посылает высокий сигнал).

Пройдя через устройство Datasheet, я обнаружил, что доступна функция уведомления об изменении ввода (ICN).

Это говорит:

«Входной Изменение Функция уведомления из портов ввода/вывода позволяет устройствам для генерации прерывания запросы к процессору в ответ на изменение правового государства (COS) на выбранных входных контактов Это. функция может обнаруживать входные изменения состояний (COS) даже в спящем режиме, когда часы отключены. Каждый вывод порта I/O может быть выбран (включен) для генерации запроса прерывания на изменение состояния. "

Я попытался найти дополнительную информацию о его реализации, но не смог найти информацию.

Может ли кто-нибудь указать мне способ его реализации или поделиться ссылкой, объясняющей ее реализацию или связанную с ней информацию ???

ответ

1

Вам необходимо общее руководство dspic33e (одно с главой в отдельном файле на периферию).

Попробуйте что-то вроде

CNENBbits.CNIEB1 = 1; // Enable RB1 pin for interrupt detection 
_CNIP=7;  // priority (7 = highest) 
_CNIE = 1; // Enable CN interrupts 
_CNIF = 0; // clear interrupt flag 

и определить ваши _CN обработки прерывания примерно так:

void __attribute__((__interrupt__, no_auto_psv)) _CNInterrupt(void) 
{ 
    _CNIF = 0; 
} 

Если вы включите CN для нескольких выводов, вы должны опрашивать булавки прерывания, чтобы определить, который активировал его.

 Смежные вопросы

  • Нет связанных вопросов^_^