mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Configurationbits PIC 16F88


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.