Мигающий светодиод PICkit2 с кнопкой - PullRequest
2 голосов
/ 11 мая 2011

Я использую демонстрационную плату с низким количеством выводов PICkit2 с чипом 16f690. Мне удалось написать простой код для включения и выключения светодиодов, но при попытке использовать кнопку для изменения состояния светодиодов я не смог этого сделать. Мой код ниже, вместе со ссылкой на схему для устройства.

#include <htc.h>

__CONFIG(MCLRE_OFF &  BOREN_OFF & PWRTE_OFF & IESO_OFF & CP_OFF & FCMEN_ON);

void main()
{
    //initialization
    TRISAbits.RA3 = 1;      //make button (RA3) input
    TRISCbits.RC0 = 0;      //make LED (RC0) output

    for(;;)                 // loop forever
    {
        //set RC0 if RA3 is low (button pressed), else clear RC0
        if(PORTAbits.RA3)
        {
            RC0 = 1;
        }
        else
        {
            RC0 = 0;
        }
    }
}

Руководство пользователя демонстрационной платы

Ответы [ 2 ]

4 голосов
/ 12 мая 2011

RA3 также / MCLR, в Таблице 3 таблицы указано, что подтягивание на этом выводе активируется только при внешней конфигурации / MCLR.Если нет подтягивания, вы не получите изменений.Пин читается постоянно высоко или низко?

Я бы не использовал RA3, по крайней мере, при отладке, и если вам придется использовать его в коде выпуска, поменяйте штырь на другой при отладке.

Другая распространенная проблема с PORTA - это то, что по умолчанию это порт аналогового ввода.Биты ANSEL установлены и должны быть очищены для использования в качестве цифрового входа, но RA3 не отображается на аналоговый вход.

1 голос
/ 15 января 2012

У меня возникла та же проблема, и я обнаружил следующее.

В настройках программатора для MPLAB IDE поставьте галочку "3-State on Release from Reset".Я также изменил включенный заголовочный файл с «htc.h» на «pic.h», кнопка теперь работает.

...