Stránka 1 z 1
Konfigurační slovo u PIC
Napsal: 12 dub 2010, 09:49
od forbidden
Zajímalo by mě, kde bych našel seznam všech konfiguračních slov používaných u PICů, nebo alespoň ty nejčastější. Jde mi o to, že konfigurační slovo nastavuju vždycky v kódu. Nejznámější si pamatuju, ale u novýho PICu třeba nevím jak některé nastavit. Díval jsem se do definičního souboru toho kterýho typu, ale ty názvy tam nesedí. Stejně tak nesedí názvy jednotlivých bitů slova přímo v datasheetu. Třeba MCLR vs. MCLRE, PWRTE vs. PUT, různé možnosti nastavení oscilátoru a podobně. Vypadá to, že překladač má nějakou vlastní definici těchto názvů a tu bych potřeboval najít.
Díky za pomoc
Napsal: 12 dub 2010, 18:59
od jankop
Mluvím teď o prostředí MPLAB včetně integrovaného assembleru. Já si myslím, že překladač konfigurační bity/slova prostě nezná. Striktně se drží definice obsažené v include pro daný procesor, pokud tuto definici použiješ. Zná jen ty konfigurační bity, které jsou tam popsány. Stačí prostě používat mnemoniku obsaženou v souborech *.INC (obvykle v adresáři C:\Program Files\Microchip\MPASM Suite).
Napsal: 12 dub 2010, 19:08
od forbidden
No, a to právě není pravda, viz část INC souboru 12F675:
######################################################################
#
# Configuration Registers
#
######################################################################
cfgbits (key=CONFIG addr=0x2007 unused=0x3e00)
field (key=OSC mask=0x7 desc="Oscillator")
setting (req=0x7 value=0x7 desc="External RC Clockout")
setting (req=0x7 value=0x6 desc="External RC No Clock")
setting (req=0x7 value=0x5 desc="Internal RC Clockout")
setting (req=0x7 value=0x4 desc="Internal RC No Clock")
setting (req=0x7 value=0x3 desc="EC")
setting (req=0x7 value=0x2 desc="HS")
setting (req=0x7 value=0x1 desc="XT")
setting (req=0x7 value=0x0 desc="LP")
field (key=WDT mask=0x8 desc="Watchdog Timer")
setting (req=0x8 value=0x8 desc="On")
setting (req=0x8 value=0x0 desc="Off")
field (key=PUT mask=0x10 desc="Power Up Timer")
setting (req=0x10 value=0x10 desc="Off")
setting (req=0x10 value=0x0 desc="On")
field (key=MCLRE mask=0x20 desc="Master Clear Enable")
setting (req=0x20 value=0x20 desc="External")
setting (req=0x20 value=0x0 desc="Internal")
field (key=BODEN mask=0x40 desc="Brown Out Detect")
setting (req=0x40 value=0x40 desc="On")
setting (req=0x40 value=0x0 desc="Off")
field (key=CP mask=0x80 desc="Code Protect")
setting (req=0x80 value=0x80 desc="Off")
checksum (type=0x0 protregion=0x0-0x0)
setting (req=0x80 value=0x0 desc="On")
checksum (type=0x20 protregion=0x0-0x3fe)
field (key=CPD mask=0x100 desc="Data EE Read Protect")
setting (req=0x100 value=0x100 desc="Off")
setting (req=0x100 value=0x0 desc="On")
field (key=BG mask=0x3000 desc="Bandgap Calibration Bits" flags=xh)
setting (req=0x3000 value=0x3000 desc="Highest Bandgap Voltage")
setting (req=0x3000 value=0x0 desc="Lowest Bandgap Voltage")
třeba ten Power Up Timer - PUT, v kódu musím nastavit _PWRTE_ON, nebo OFF, ne _PUT_ON, nebo OFF.
Napsal: 12 dub 2010, 19:15
od jankop
Beru zpět, nevím o čem hovoříš. Takhle vypadá konec mého souboru INC, na který odkazuji. V případě nastavení pojistek v menu Configure/Configuration bits se zřejmě uplatňují informace ze souborů *.DEV
Kód: Vybrat vše
;==========================================================================
;
; Configuration Bits
;
;==========================================================================
_CPD_ON EQU H'3EFF'
_CPD_OFF EQU H'3FFF'
_CP_ON EQU H'3F7F'
_CP_OFF EQU H'3FFF'
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FEF'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FF7'
_LP_OSC EQU H'3FF8'
_XT_OSC EQU H'3FF9'
_HS_OSC EQU H'3FFA'
_EC_OSC EQU H'3FFB'
_INTRC_OSC_NOCLKOUT EQU H'3FFC'
_INTRC_OSC_CLKOUT EQU H'3FFD'
_EXTRC_OSC_NOCLKOUT EQU H'3FFE'
_EXTRC_OSC_CLKOUT EQU H'3FFF'
LIST
Napsal: 12 dub 2010, 19:24
od forbidden
Už to mám, já se koukal do jinýho souboru, ne INC, ale DEV.
Tak teď už je mi to jasný.
Díky.