Я пытался начать работу с PIC12f683, чтобы познакомиться с семейством микроконтроллеров PIC.
Я подключил его к Pickit 3 и разговаривал с моим ПК,кажется, что все работает нормально.
Я пробовал различные примеры светодиодных флешеров из интернета, но независимо от того, какой пример кода я пробую, или что я делаю с регистрами TRISO или GPIO, я получаю вывод только на контакт 2, ни один из другихКонтакты GPIO будут делать все что угодно.
Говоря электрически, контакты 1, 4, 6, 7 и 8 подключены к Pickit для ICSP.Контакты 2, 3, 5 и 7 имеют светодиоды с резисторами 220 Ом, идущими от контакта к земле, а контакты 1 и 8 подключены к литий-ионному аккумулятору (~ 3,7 В).
Это кодЯ использую в настоящее время.
#define _XTAL_FREQ 8000000
#include <xc.h>
// BEGIN CONFIG
// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF // Brown Out Detect (BOR disabled)
#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
//END CONFIG
int main()
{
TRISIO =0b00000000; //RB0 as Output PIN
GPIO = 0b00111111;
while(1)
{
GP5=1;
GP4=1;
GP0=1;
GP2=1;
__delay_ms(1000);
GP5=0;
GP4=0;
GP0=0;
GP2=0;
__delay_ms(1000);
}
return 0;
}
Я считаю, что часть конфигурации была сгенерирована MPlab, остальное копируется / модифицируется из этой инструкции: https://www.instructables.com/id/How-to-Blink-an-Led-With-PIC16F886-/ но результаты одинаковы, независимо от того, какой примеркод, который я использую.Я предполагаю, что есть регистр или переменная конфигурации, которую я где-то установил неправильно, но я не могу понять это.