PIC programmable Bits

Gast #2643500
Lesenswert?

Hallo Zusammen,

ich arbeite mich gerade in die Programmierung eines PIC12F1840 in C ein 
und habe eine kleine Frage. Ich kann zwar Register wie das TRISA 
beschreiben, beim CONFIG1 klappt es aber nicht. Im Datenblatt steht 
auch, die Bits seien "programmable" und nicht "writable". Wie muss ich 
das machen?
Ich programmiere in MPLAB von Microchip und der Compiler ist Hi-Tech.

Viele Grüße
Gast #2648367
Lesenswert?

Vielen Dank! Darauf bin ich gar nicht gekommen, in der Anleitung vom 
Compiler zu schauen. Als ich den Befehl dann auch noch nicht in, sondern 
vor die main() geschrieben habe, hat es auch funktioniert :)
Gast #2648605
Lesenswert?

Lehrmann Michael schrieb:
> Wenn man mal genau darüber nachdenkt, dann ergibt auch nur das sinn.
> dDiese Bits werden einmal beim flashen gesetzt und bleieb dann bis zum
> nächsten Flashvorgang bestehen. Mit der Main-Schleife haben sie rein
> garnichts zu tun =)

Da hast du natürlich absolut Recht. Das dachte ich mir dann auch nach 
etwa 10 Versuchen, in denen es nicht funktioniert hat...

Leider habe ich mich nun aber etwas zu früh gefreut. Ich kann zwar so 
einige Config Bits setzen, aber komischerweise nicht alle.
__CONFIG(FOSC_INTOSC);
__CONFIG(FCMEN_OFF);
funktioniert. Sobald ich aber noch einen weiteren __CONFIG() Befehl dazu 
schreibe, bekomme ich eine Fehlermeldung. Ich kann also nur 2 solcher 
Befehle schreiben. Dabei ist es egal welche, sobald ein Dritter 
dazukommt, bekomme ich den Fehler:
Error [1346] ; 0. can't find 0x3 words for psect "config" in segment 
"CONFIG" (largest unused contiguous range 0x2)

Kann mir Jemand auf die Sprünge helfen?
Gast #2648728
Lesenswert?

>Ich kann also nur 2 solcher Befehle schreiben.

Wahrscheinlich hat der uC auch nur 2 Config-Words.

Du kannst alle Optionen, die zum 1. bzw. zum 2. Configword gehören in 
die erste resp. zweite __CONFIG Anweisung schreiben,
z.B. ähnlich wie

// Config Word 1
   __CONFIG(FCMEN_ON  & IESO_ON   & CLKOUTEN_OFF & BOREN_ON  & CP_OFF ); 
//

// Config Word 2
   __CONFIG(LVP_OFF & DEBUG_OFF & BORV_27 ); //


Gruss
Gast #2648766
Lesenswert?

Achso, gibt es nicht auch dir Möglichkeit, mehrere __CONFIG() Befehle 
pro Configuration word zu benutzen? Das wäre schöner zu kommentieren.

Wenn ich alle Befehle zusammenfasse, funktioniert es aber schon mal, 
danke :)
Gast #2648806
Lesenswert?

Du kannst nur so viele CONFIG-Pragmas angeben, wie der µC CONFIG-Wörter 
hat, steht auch im Datenblatt (siehe oben). Die Bits, die zu einem Word 
gehören, werden mit "&" verkettet, siehe oben oder als Bitfolge o.ä. 
angegeben.

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