Forum: Mikrocontroller und Digitale Elektronik Configurationbits PIC 16F88


von Alex (Gast)


Lesenswert?

Hallo zusammen,

Ich habe mir für mein Projekt einen 16F88 ausgesucht, weil der klein
gehalten ist aber über gute Peripherie verfügt. Leider ist dieser PIC
ein neuer in der Microchip Familie, was ich schon bei der Beschaffung
gemerkt habe. Um diesen PIC zu programmieren benutze ich einen
selbstgebauten Programmer fur die parallele Schnittstelle. Man konnte
sich bei diesem eigenbau Programmer auch die passende Programmer
Software runter laden.
Mein Problem jetzt:
Der neue Pic von Microchip unterstützt neue Konfiguration Modi. Er kann
einen internen RC Oszillator benutzen, so das man keinen externen mehr
benötigt. Dadurch hat man wieder mehr I/O 's frei Leider unterstützt
die Programmer Software diesen Modus nicht ( lediglich HC,XT,ext RC,WDT
usw.).
Jetzt hab ich mir überlegt, wenn ich die Konfigurationsbits direkt im
Assembler File setze, braucht das die Progger Software nicht zu machen.
Aber wie mache ich das. Ich benutze MPLAB zum coden. MPLAB selber
unterstützt natürlich den 16F88. Ich habe in diversen Beispielen
folgendes gefunden.

Config    __WDTOFF & _XTOSC
usw.

Leider spuckt MPLAB mir dann immer Fehler aus.
Hat da jemand vielleicht einen Tip wie ich da weiter komme ???

Gruß
Alex

von Andreas Jäger (Gast)


Lesenswert?

Hallo Alex,

im INC-File für den 16f88 sind folgende Config's definiert:

_CP_ALL                      EQU     H'1FFF'
_CP_OFF                       EQU     H'3FFF'
_CCP1_RB0         EQU     H'3FFF'
_CCP1_RB3                    EQU     H'2FFF'
_DEBUG_OFF                   EQU     H'3FFF'
_DEBUG_ON                    EQU     H'37FF'
_WRT_ENABLE_OFF              EQU     H'3FFF'
_WRT_ENABLE_512              EQU     H'3DFF'
_WRT_ENABLE_1024             EQU     H'3BFF'
_CPD_ON                      EQU     H'3EFF'
_CPD_OFF                     EQU     H'3FFF'
_LVP_ON                      EQU     H'3FFF'
_LVP_OFF                     EQU     H'3F7F'
_BODEN_ON                    EQU     H'3FFF'
_BODEN_OFF                   EQU     H'3FBF'
_MCLR_ON         EQU     H'3FFF'
_MCLR_OFF                    EQU     H'3FDF'
_PWRTE_OFF                   EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_EXTRC_CLKOUT         EQU     H'3FFF'
_EXTRC_IO         EQU     H'3FFE'
_INTRC_CLKOUT                EQU     H'3FFD'
_INTRC_IO         EQU     H'3FFC'
_EXTCLK           EQU     H'3FEF'
_HS_OSC                      EQU     H'3FEE'
_XT_OSC                      EQU     H'3FED'
_LP_OSC                      EQU     H'3FEC'

Welche Bits Du wie setzen musst, um den internen RC einzuschalten,
steht bestimmt im Manual (habe ich nicht zur Hand).

MfG
Andreas Jäger

von Steffen (Gast)


Lesenswert?

Ich nehme aber mal an, das der Programmer die Konfiguration so brennt,
wie er sie angegeben bekommt. Ob er die Daten aus der Hex-Datei
verwendet ist eher fraglich.

Steffen

von Alex (Gast)


Lesenswert?

Hi Steffen

Das scheint jetzt so zu funktionieren...
Der compiler frisst das jetzt. Die Software vom Programmer meldet mir
jetzt auch das die Config Bits vom HEX File genommen werden.
Beim 16F88 ist der Config Befehl etwas anders, deswegen klappte das bei
mir auch nie. Der Verfügt anscheindend über 2 verschiedene Config
Register. Sieht dann wie folgt aus.

__CONFIG  _CONFIG1, _WDT_OFF & _INTRC_IO   usw.

Allerdings läuft mein Programm noch nicht ;-)
Irgendwie weiß ich jetzt auch noch nicht ob der PIC jetzt wirklich
intern Taktet, oder Pause macht. Der sagt mir ja nichts :-)
Muß wohl noch ein kleines Testprogramm schreiben um die einfachen
Sachen erst mal zu checken.

Ich danke euch für eure Hilfe

Gruß
Alex

von Steffen (Gast)


Lesenswert?

Ich hab mir gerade mal das Datenblatt organisiert. Das mit den zwei
Config-Regs ist richtig. Die stehen im Programmspeicher an Adresse
0x2007 und 0x2008. Du könntest versuchen diese Speicherstellen geziehlt
nochmal auszulesen falls der Programmer dies unterstützt.

Steffen

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.