PIC mit C Programmieren LED Blinky

OP #2695254
Hallo Leute,

ich habe folgendes Problem.

ich arbeite mit dem mplabx und dem c18 compiler.

mit dem pic18lf45k22 sollen am ausgang (RD3, RD2, RD1, RD0, RC4, RC3,
RC2, RC1,RE0, RA5, RA4, RA3, RA2, RA1) 12 led´s zum blinken gebracht
werden.
Hierzu habe ich einen C code geschrieben. Ich lasse das debugger laufen
und krige die folgenden 4 error angezeigt!

1.configuration setting 'PWRT' not recognized
2.configuration setting 'BOR' not recognized
3.configuration setting 'WDT' not recognized
4.syntax error ->  TRISA = 0b.1100.0001;


Wo könnte das Problem liegen? Was ist bei dem Code zur korrigieren?! Ich
Programmiere zum ersten mal einen µC. Für eure hilfen bin ich schonmal
im voraus sehr dankbar!

Hier das C Code;
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <p18cxxx.h>
4
#include <delays.h>
5

6
/*Configuration*/
7

8
#pragma config FOSC = XT //CPU = 4MHz
9
#pragma config PWRT = ON //Power Up Timer
10
#pragma config BOR = OFF //Brown of Reset Voltage
11
#pragma config WDT = OFF // Watchdog Timer
12
#pragma config LVP = OFF // Low Voltage ICSP
13

14

15
/*Decleration*/
16
#pragma code
17
void main(void)
18
{
19

20
    LATA = 0x00;
21
    LATC = 0x00;
22
    LATD = 0x00;
23
    LATE = 0x00;
24

25
    TRISA = 0b.1100.0001; // EIN und AUSGÄNGE Definiert 0xA1
26
    TRISB = 0b.1111.1110; // EIN und AUSGÄNGE Definiert 0xFE
27
    TRISC = 0b.1110.0001; // EIN und AUSGÄNGE Definiert 0xE1
28
    TRISD = 0b.1111.0000; // EIN und AUSGÄNGE Definiert 0xF0
29
    TRISE = 0b.0000.1110; // EIN und AUSGÄNGE Definiert 0x0E
30

31
    while(1)
32
    {
33
        LATA = 1;
34
        LATC = 1;
35
        LATD = 1;
36
        LATE = 1;
37
        Delay10KTCYx(100); // Warteschleife
38
        LATA = 0;
39
        LATC = 0;
40
        LATD = 0;
41
        LATE = 0;
42
        Delay10KTCYx(100); // Warteschleife
43
    }
44

45

46

47
}
OP
hallo leute, ich habe das mit den binärzahlen ins hex umgeändert..jetzt 
zeigt es den fehler unter punkt 4 nicht mehr an

0b.1100.0001 ->  0xA1

ich habs zwar nicht probiert, aber gehe mal davon aus dass es auch 
anstatt
0b.1100.0001 -> 0b1100.0001 funktionieren würde..

vielan dank an euch beiden..

jedoch sind die ersten 3 fehler immer noch da... :(
Gast
Hallo

Bei den Fehlermeldungen scheint es doch um die Konfiguration zu gehen.
Gibt es PWRT, BOR, WDT ueberhaupt (Schreibfehler)?

Ist die Syntax richtig?
Fehlt eventuell eine include-Datei?


Gruß
Joachim
el pistolero schrieb:
> hallo,
>
> all die parameter bzw einstellungen gibt es(PWRT, BOR, WDT). Ich meine
> wenn ich #include <p18cxxx.h> einbinde sollten die parameter erkannt
> werden! Also beim FOSC meckert es nicht..

'sollten' ist zu wenig.

Auch so ein Header File ist nichts anderes als ein Textfile, in welches 
man mit dem Editor reinsehen kann und in dem man suchen kann, ob es da 
ein FOSC (das muss ja da irgendwo drin stehen, denn der wird ja 
gefunden) bzw. ein PWRT, BOR oder WDT gibt. Bzw. ob es etwas gibt, was 
so ähnlich heißt.
Gast
üblicherweise "0b00000000" oder eben "0x00" ;)

probier doch die config nicht im code vorzunehmen sondern erstmal über 
die configurationbits in mplab. da würde ich als anfänger ein 
beispielprogramm nehmen und die konfigurationen erstmal übernehmen.
OP
hallo leute,

danke nochmals an alle für die vielen hinweise.

ich habe anstelle PWRT, BOR, WDT, -> PWRTEN, BOREN, WDTEN ; 
eingegeben..der debugger hat endlich keinen fehler angezeigt. :) ich 
muss das ganze nochmal auf den mikrocontoller übertragen..ich bin echt 
gespannt..am freitag wird die platine gelötet..ich werde die ergebnisse 
nochmal bescheid geben..ich hoffe das es dann auch funktionieren wird :)

übrigens habe ich die untere binärzahl korrogiert :)

0xA1 = 1010.0001 //  0xC1 = 1100.0001
el pistolero schrieb:
> ich habe anstelle PWRT, BOR, WDT, -> PWRTEN, BOREN, WDTEN ;
> eingegeben..der debugger hat endlich keinen fehler angezeigt. :)

Das ist doch schonmal gut. Die Bezeichnung im Programm bzw Header ist 
ansich immer gleich der Bezeichnung aus dem Datenblatt. WDT ist zwar die 
Abkürzung für Watchdog-Timer, jedoch heißt das Bit in der Config (im 
Datenblatt abzulesen) WDTEN -> WatchDog-Timer ENable bit.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.