PIC16F884 Anfängerfragen

OP #7237103
Lesenswert?

warum kommt eine Fehlermeldung beim Hochladen ?
hängt es mit der Definition des internen Oszillators zusammen ?
Ich will ihn auf 1Mhz einstellen:

#pragma config FOSC = INTRC_CLKOUT// Oscillator Selection bits (INTOSC 
oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on 
RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT 
disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT 
disabled)
#pragma config MCLRE = ON       // RE3/MCLR pin function select bit 
(RE3/MCLR pin function is MCLR)
#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 = ON       // Brown Out Reset Selection bits (BOR 
enabled)
#pragma config IESO = ON        // Internal External Switchover bit 
(Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit 
(Fail-Safe Clock Monitor is enabled)
#pragma config LVP = ON         // Low Voltage Programming Enable bit 
(RB3/PGM pin has PGM function, low voltage programming enabled)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit 
(Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write 
Enable bits (Write protection off)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#define _XTAL_FREQ 1000000
#include <xc.h>

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>

int main()
{
  TRISA1 = 0;
  while(1)
  {
    RA1 = 1;
    __delay_ms(1200);
    RA1 = 0;
    __delay_ms(1200);
  }
  return 0;
}

diese Meldung kommt:
Device Erased...

Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x7ff
configuration memory
program memory
Address: b3 Expected Value: 3fff Received Value: 0
Failed to program device
OP #7237108
Lesenswert?

wie wird OSCCON passend initialisert ?

mit externem läufts auch nicht:

#pragma config FOSC = HS // Oscillator Selection bits (INTOSC 
oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on 
RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT 
disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT 
disabled)
#pragma config MCLRE = ON       // RE3/MCLR pin function select bit 
(RE3/MCLR pin function is MCLR)
#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 = ON       // Brown Out Reset Selection bits (BOR 
enabled)
#pragma config IESO = ON        // Internal External Switchover bit 
(Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit 
(Fail-Safe Clock Monitor is enabled)
#pragma config LVP = ON         // Low Voltage Programming Enable bit 
(RB3/PGM pin has PGM function, low voltage programming enabled)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit 
(Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write 
Enable bits (Write protection off)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#define _XTAL_FREQ 4000000
OP #7237124
Lesenswert?

den manuellen Erase hab ich jetzt hinbekommen indem ich mir den Erase 
Button mit Customize Toolbar angelegt habe, aber das hat - 
erwartungsgemäß - nichts gebracht.

#hhinz: was ist denn überhaupt der OSCCON und warum muss man den 
initialiseren ? Da es mit dem externen Oszillator ja auch nicht geht, 
hat der Fehler vielleicht eine andere Ursache ?

(warum müssen eigentlich immer welche die Anfänger diffamieren - dann 
braucht man doch gar nicht zu antworten ! Es gibt doch genug 
hilfsbereite Mitmenschen die in der Lage sind kurz und bündig die 
richtigen Antworten zu geben)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren