Forum: Mikrocontroller und Digitale Elektronik PIC16F884 Anfängerfragen


von Michael S. (misax)


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

von H. H. (Gast)


Lesenswert?

OSCCON muss man schon passend initialisieren.

von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> Address: b3 Expected Value: 3fff Received Value: 0
> Failed to program device

Lösch den Chip mal manuell.

von Michael S. (misax)


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

von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> wie wird OSCCON passend initialisert ?

Du weißt nicht wie man bei einem alten PIC ein Register der Bank 1 
beschreibt?

Dann solltest du im PIC-Kurs nochmal auf den Anfang zurück.

von Michael S. (misax)


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)

von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> Es gibt doch genug
> hilfsbereite Mitmenschen die in der Lage sind kurz und bündig die
> richtigen Antworten zu geben)

Kaum.

von Teo D. (teoderix)


Lesenswert?

Michael S. schrieb:
> Address: b3 Expected Value: 3fff Received Value: 0
> Failed to program device

Kann am der USB Verbindung liegen. Kabel tauschen, kein Hub, 
Verlängerung....
Das Kabel zum µC ist zu lang oder hat sonst wie Kontaktprobleme.

von Michael S. (misax)


Lesenswert?

#teoderix: ich hab jetzt den Chip statt über einen Nullkraftsockel 
direkt ans Breadboard gesteckt und jetzt gehts ! danke für den Tip.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.