Не правильная компиляция СИ кода в HEX / MPLAB X | C
Добавлено: Чт апр 12, 2018 23:06:18
Всем привет! Пытаюсь освоить PIC12F629. В качестве IDE выбрал MPLAB X. Сделал блинк, компилирую... загружаю в PicKit 3 Programmer... и не работает. PIC выдаёт 0.10 вольт на пине. Посмотрел в HEX и тут вижу: в самом начале какой-то "2BFD" на 000. На "3e2" уже начинаются какие-то данные. Почему так произходит? (При компиляции ассеблерского кода всё нормально.)

Спойлер
Код: Выделить всё
// CONFIG
#pragma config FOSC = EXTRCCLK // Oscillator Selection bits (RC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR)
#pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled)
#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 statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#include <xc.h>
#include <pic12f629.h>
#define _XTAL_FREQ 4000000
void main(void){
//Вспомогательная переменная
//для организации временной задержки
unsigned long counter;
//Настройка портов ввода/вывода PIC12F675
//Выключение подтягивающих резисторов
WPU = 0x00;
//Запретить использование подтягивающих резисторов
OPTION_REGbits.nGPPU = 1;
// отключить компаратор
CMCON = 0x07;
//Настрока выходов GP4, GP5 на выход
TRISIO = 0;
//Установка на выходах GP4, GP5 лог. 0
GPIO = 0;
//Бесконечный цикл.
while(1){
GPIO4 ^=1; //выв. 3 инверсия бита 4
//Задержка на 1 сек
__delay_ms(1000);
}
}
