Forum: Mikrocontroller und Digitale Elektronik [PIC] Default-State Config-Bits


von derjaeger (Gast)


Angehängte Dateien:

Lesenswert?

An die PIC-Erfahrenen, da ich ganz neu bei PIC dabei bin (aber nicht 
AVR):

Ich habe folgende Zeile in meinem Programm:
1
__CONFIG(FOSC_INTRCIO & WDTE_ON);

Werden die nicht spezifizierten Config-Bits automatisch auf '1' gesetzt?
D.h. entspricht die obere Zeile der unteren Zeile?
1
__CONFIG(FOSC_INTRCIO & WDTE_ON & PWRTE_OFF & CP_OFF & MCLRE_ON);

Im Datenblatt wird das angedeutet:

The configuration bits can be programmed (read as '0') or left 
unprogrammed (read as '1') to select various device configurations

Mir geht es hier um den Master Clear Enable:
Ist es richtig, dass JEDER PIC im Default-State den "Master Clear Pin" 
aktiv hat, d.h. der Pin hat defaultmäßig eine Reset-Funktion, wenn nicht 
anders im Config-Befehl definiert?

Danke!

von Christian M. (Gast)


Lesenswert?

derjaeger schrieb:
> Werden die nicht spezifizierten Config-Bits automatisch auf '1' gesetzt?
> D.h. entspricht die obere Zeile der unteren Zeile?

Ja, schau mal in Dein .INC Deines unbekannten PICs:
1
_PWRTE_OFF                   EQU     H'3FFF'
2
_CP_OFF                      EQU     H'3FFF'
3
_MCLRE_ON                    EQU     H'3FFF'

Mit der UND-Verknüpfung ändert sich da nichts!

Gruss Chregu

von derjaeger (Gast)


Lesenswert?

Danke, das hab ich gesucht.

Man kann sofort sehen, welcher Zustand der Default ist (=0xFFFF, in 
diesem Fall ist MCLRE_ON immer gesetzt, wenn man es nicht ausdrücklich 
durch MCLRE_OFF überschreibt.
1
#define CP_OFF               0xFFFF
2
// Do not use
3
#define CP_50                0xEADF
4
// 0200h-03FEh code protected
5
#define CP_75                0xD5BF
6
// All memory is code protected
7
#define CP_ALL               0xC09F
8
// Master Clear Enable
9
// Master Clear enabled
10
#define MCLRE_ON             0xFFFF
11
// Master Clear disabled
12
#define MCLRE_OFF            0xFF7F

von Volker S. (vloki)


Lesenswert?

derjaeger schrieb:
> Danke, das hab ich gesucht.

Einfach immer ALLE spezifizieren!
(Geht schneller als nach "Defaults" zu suchen und ist weniger 
fehleranfällig)

von derjaeger (Gast)


Lesenswert?

>>Einfach immer ALLE spezifizieren!

Das Problem ist, der Quellcode ist nicht von mir, sondern von einem 
Vorgänger an dem ich ran muss. Da hat er sich die Muehe wohl nicht 
machen wollen ...

von Christian M. (Gast)


Lesenswert?

Die Config-Bits kann man je nach Software auch im Compiler oder 
Brennsoftware einstellen/ändern.
Vielleicht hat Dein Vorgänger ja sowas genutzt?

Gruss Chregu

von Teo D. (teoderix)


Lesenswert?

Christian M. schrieb:
> Die Config-Bits kann man je nach Software

Windows/PIC Memory views/Configurations Bits

Generieren lasen, Copy&Past, fettig. :)

von Volker S. (vloki)


Lesenswert?

derjaeger schrieb:
> Da hat er sich die Muehe wohl nicht
> machen wollen ...

Ja die Mühe (potenziert) haben dann eben die anderen ;-)

von Teo D. (teoderix)


Lesenswert?

Volker S. schrieb:
> derjaeger schrieb:
>> Da hat er sich die Muehe wohl nicht
>> machen wollen ...
>
> Ja die Mühe (potenziert) haben dann eben die anderen ;-)

Der Vorgänger wird wohl so faul gewesen sein, das Tool zu nutzen. Das 
generiert auch keinen unnötigen Code.

von derjaeger (Gast)


Lesenswert?

Zum Compilieren wurde eine Batchfile genutzt und der Hi-Tech Compiler 
(picc.exe). Ich konnte in der Batchfile nicht erkennen, dass man dem 
Compiler die Configbits uebergeben konnte ...

>Windows/PIC Memory views/Configurations Bits
>Generieren lasen, Copy&Past, fettig. :)

Hat er leider nicht gemacht. daher auch die unvollstaendigen 
Config-Zeilen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.