Tengo un PIC16F877A y escribí un programa en MPLAB X IDE para hacer parpadear un LED.
Este es mi programa:
#include <xc.h>
#define _XTAL_FREQ 6000000
void main()
{
TRISB7 = 0;
while(1)
{
RB7=1;
__delay_ms(1000);
RB7=0;
__delay_ms(1000);
}
}
Lo compilé con éxito, pero cuando cargo el archivo hex en PICKit2v2 , muestra una advertencia como la siguiente:
YtambiéncuandointentéescribiresearchivohexenMCU,muestraelsiguienteerror:
Así que volví a abrir mi proyecto en MPLAB X IDE V2.26 e intenté agregar datos de configuración a mi código, usando el asistente en Windows - > Vista de memoria PIC - > Bits de configuración Pero cuando hago clic en él, veo la siguiente ventana en la parte inferior de la pantalla:
Pregunta1:¿Porquélamayoríadelamemoriaesiguala3FFF
enlaprimeraylasegundaimagenqueadjuntéarriba?¿Esosignificaquemiprogramaesdeaproximadamente6bytes?(Losprimerosseisbytessondiferentes)
Pregunta2:¿Elerrorquerecibíessobrelosbitsdeconfiguración?¿Oesalgomás?!
Pregunta3:¿Cuáldeestasopcionesdeboseleccionarpararelojinterno?NoquierousarningúnrelojexternoocristaloRC.
Pregunta4:¿Cuálesladiferenciaentrelasbibliotecashtc.hyxc.h?¿AlgúncódigodeejemploenInternetquevihtc.hincluidoenelprogramaanterior?¿Paraquésirve?¿Québibliotecassonparalafunciónretraso()?
Pregunta5:¿Esobligatorialasegundalíneademiprograma(merefieroa#define_XTAL_FREQ6000000
)?¿Esparauncristalexterno?o...?
SoynuevoenlaprogramacióndePICMCU.Pleasarrojóalgunaluzsobreestetemaparamíyparafuturosespectadores.
Actualización:
Heagregadolaconfiguraciónamiprograma:Ahoraesteesmiprograma:
/**File:newmain.c*Author:AmirEbrahim**CreatedonJanuary3,2015,1:42PM*/#include<xc.h>#define_XTAL_FREQ12000000#pragmaconfigFOSC=HS//OscillatorSelectionbits(HSoscillator)#pragmaconfigWDTE=ON//WatchdogTimerEnablebit(WDTenabled)#pragmaconfigPWRTE=OFF//Power-upTimerEnablebit(PWRTdisabled)#pragmaconfigBOREN=ON//Brown-outResetEnablebit(BORenabled)#pragmaconfigLVP=ON//Low-Voltage(Single-Supply)In-CircuitSerialProgrammingEnablebit(RB3/PGMpinhasPGMfunction;low-voltageprogrammingenabled)#pragmaconfigCPD=OFF//DataEEPROMMemoryCodeProtectionbit(DataEEPROMcodeprotectionoff)#pragmaconfigWRT=OFF//FlashProgramMemoryWriteEnablebits(Writeprotectionoff;allprogrammemorymaybewrittentobyEECONcontrol)#pragmaconfigCP=OFF//FlashProgramMemoryCodeProtectionbit(Codeprotectionoff)voidmain(){TRISB7=0;while(1){RB7=1;__delay_ms(1000);RB7=0;__delay_ms(1000);}}
CuandocarguéelarchivohexenPICKit2v2,recibíunacargaexitosa:
¡Pero cuando quiero escribir el archivo en la MCU, recibo el mismo error anterior!
¡¿Por qué ?! :(