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
voidmain(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
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... :(
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
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..
es soll auch ein linker skript benötigt..was ich nicht einbunden
konnte..irgend etwas in dem Verzeichnis .../mcc18/lkr/..?? kann es damit
was zu tun haben??
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.
el pistolero schrieb:> es soll auch ein linker skript benötigt..was ich nicht einbunden> konnte..irgend etwas in dem Verzeichnis .../mcc18/lkr/..?? kann es damit> was zu tun haben??
Nein.
Der Linker ist an dieser Stelle noch gar nicht im Spiel.
ü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.
Versuch mal statt PWRT, BOR und WDT zu schreiben: PWRTEN, BOREN und
WDTEN.
el pistolero schrieb:> 0b.1100.0001 -> 0xA1
0xA1 bleibt aber leider 1010.0001, anders rum sind 1100.0001 0xC1.
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.
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.