C-Compiler und Config-Words Beschreibung bei PIC .

Gast #1066793
Lesenswert?

Ich mache erste Schritte in PIC-Programmierung. Meine ersten Versuche 
laufen
unter C-Compiler SDCC. Wie beschreibe ich Config-Words( CONFIG1H, 
CONFIG2H,
CONFIG2L usw.) wenn ich einen C-Compiler benutze? Im welchem 
Speicherart (Eeprom oder Flashprom) sind die Config-Words  abgelegt?

skorpionx
#1066817
Lesenswert?

Sven Pauli wrote:

> Ich kenne die PICs nicht... sollten bei PIC die "Configwords" das sein,
> was beim AVR die Fuses sind, werden die nicht von/mit dem Compiler,
> sondern mit dem Brennprogramm beschrieben.

Bei Microchips Compilern da steht das oft direkt im Quellcode und 
folglich im Objektfile mit drin. Sowas wäre prinzipiell auch bei AVRs 
möglich - als eigene Section für die paar Bytes.
Gast #1066819
Lesenswert?

A. K. wrote:
> Bei Microchips Compilern da steht das oft direkt im Quellcode und
> folglich im Objektfile mit drin.

Er hat aber gesagt, dass er den SDCC verwendet, und der ist alles aber 
nicht von Microchip.
#1066823
Lesenswert?

@Sven: Da das ziemlich wahrscheinlich auch bloss im Hex File an 
speziellen Pseudoadressen landet ist es ziemlich schnuppe welcher 
Compiler verwendet wird.

@skorpionx: Die Configbits aus dem Hexfile in den Controller zu jagen 
ist Sache des Programmiergeräts/-Programms. Wo genau die im Controller 
wirklich stecken ist nur deren Problem.

http://www.micahcarrick.com/04-25-2005/pic-c-programming-linux.html
Gast #1066828
Lesenswert?

Laut "sprut":
>Beim Brennen eines Programms in einen PIC müssen eine Reihe
>von Optionen ausgewählt werden, die auf die spätere Funktion des
> PIC einen großen Einfluß haben. Bei alter DOS-Software (PP.EXE)
>erfolgt das durch Kommandozeilenparameter, bei meiner Windowssoftware
>für Brenner2 und Brenner3 durch grafische Auswahlfelder. Alternativ
>können diese Parameter auch schon im Programmquelltext festgelegt werden. >Beim 
Brennen werden diese Einstellungen im Konfigurationsregister des PIC >abgelegt.

weiter:

>Man kann sich jetzt aus den einzelnen Bits ein ... Steuerwort >zusammenbasteln, 
und es in das ASM-File aufnehmen, indem man dort z.B. >folgende Zeile einfügt:

; Configuration festlegen
        __CONFIG     B'11110100100000 '

>Durch den Pseudobefehl '__CONFIG' erkennt der Assembler, dass er dieses 
>Datenwort als Config in das HEX-File aufnehmen soll, und es wird später 
>automatisch in den PIC gebrannt.

Also, so geht das in Assembler. Aber in C...?
Gast #1067678
Lesenswert?

Sprut-Brenner erkennt nach dem laden von der *.hex Datei,
ob Konfiguration für PIC schon in der Datei vorhanden ist und wenn 
nicht,
gibt es ein Meldung und Konfiguration kann man von „Hand“ durchführen.
Es kann auch von Vorteil sein die Konfiguration in C-File durchzuführen.
Der Art „wie“ ist Compiler abhängig.

Bei C-18:
#pragma config OSC = HS   //CPU=20 MHz
#pragma config PWRT = ON
#pragma config BOR = OFF
#pragma config WDT = OFF  //Watchdog Timer
#pragma config LVP = OFF  //Low Voltage ICSP

SDCC:
code char at __CONFIG1H conf1 = 0x22; // Select HS OSC CPU=20 MHz
code char at __CONFIG4L conf2 = 0x81; // Disable LVP Low Voltage ICSP
code char at __CONFIG2H conf3 = 0x0E; // DIsable WDT Watchdog Timer

SDCC unterstützt auch : “#pragma code”
Vielleicht könnte man sich über diese Anweisung auch etwas basteln…

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