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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.