config regel uitleg: wat moet je metde config regel? hier stel je in wat voor oscillator je gebruikt, ook zeg je of je een watchdog gebruikt, ook is er een timer die het programma vertraagt tijdens opstarten zodat de Vdd op niveau kan komen. |-------------------------------------------------------------------| |cp1|cp0|cp1|cp0|---|cpd|lvp|boden|mclr|fosc2|pwrte|wdte|fosc1|fosc0| | | | | | | | | | | | | | | | |-------------------------------------------------------------------| bit13 bit0 ra6 en ra7 zijn de pinnen waar de oscillator aan gehangen word. ra6=osc2=clkout ra7=osc1=clkin bit4,1,0: 4 1 0 1 1 1 ER(external resistor) dit is een weerstand van ra7 naar de voedingspanning 1 1 0 ER 1 0 1 INTRC(internal resistor/capacitor) interne oscillator 1 0 0 INTRC 0 1 1 EC (external clock source) bv een clocksignaal die door een andere uc gegeven wordt 0 1 0 HS (high speed, 10-20mhz) voor de snelere oscillators 0 0 1 XT (normale osc) standaard oscillator 0 0 0 LP (low power) steekt minder energie in de oscillator,heeft lage kloksnelheden. 111 ra6 is ingesteld als clkout ra7 (hangt weerstand aan naar Vdd) 110 ra6 I/O pin ra7 (hangt weerstand aan naar Vdd) 101 ra6 clkout ra7 is ingesteld als I/O pin 100 ra6 I/O pin ra7 I/O pin 011 ra6 I/O pin ra7 clkin 010 ra6 clkout ra7 clkin 001 ra6 clkout ra7 clkin 000 ra6 clkout ra7 clkin bit2: WDTEN (als je de watchdog wil gebruiken moet je hem hier aanschakelen) watchdog timer enable bit, 1=aan, 0=uit ------ bit3: PWRTEN (als je spanning op je pic zet gaat deze timer af voor het programma gaat runnen om de vdd te laten stabiliseren, hij duurt 72msec) power-up timer bit 1=uit, 0=aan (!) bit5: MCLRE (mclr pin als digitale input gebruiken, mclr word dan van binnen wel aan de Vdd gekoppeld) ra5/mclr pin function select. 1=ra5 is mclr pin, 0= ra5 is digitale input. bit6: BODEN (als de spanning te laag word zullen somige functies het doen en andere weer niet, bod reset dan het programma en maakt een bit hoog in pcon register). brown out detect (bod) enable bit, 1=bod aan, 0=bod uit. bit7: lvp (hiermee kun je programeren met 5V als voeding, maar rb4 is geen I/O pin meer) low voltage programming enable 1=rb4 word pgm pin, lvp enabled, 0= rb4 word I/O pin high voltage programming aan,mclr pinmoet weer gebruikt worden voor programeren. bit8:cpd data code protection bit 1=data memory code protection uit, 0= data memory code protected bit9: niet toegepast,lees een 0 in. bit 10-13 verschillende gedeeltes van je code kunnen hiermee worden beschermd, kunnen dus niet overschreven worden. of dit blijvend is of ofdat het weer terug te draaien is weet ik nog niet. 10 11 12 13 2K 1 1 1 1 protection uit program memory 1 0 1 0 0400h-07ffh beschermd 0 1 0 1 0200h-07ffh beschermd 0 0 0 0 0000h-07ffh beschermd 1K 1 1 1 1 protection uit programmemory 1 0 1 0 protection uit 0 1 0 1 0200h-03ffh beschermd 0 0 0 0 0000h-03ffh beschermd mplab heeft alle bits een naam gegeven, die is in de .inc file terug te vinden. hier die voor de 16f628: ;========================================================================== ; ; Configuration Bits ; ;========================================================================== _BODEN_ON EQU H'3FFF' (bit6) _BODEN_OFF EQU H'3FBF' (bit6) _CP_ALL EQU H'03FF' (bit10-13) _CP_75 EQU H'17FF' (bit10-13) _CP_50 EQU H'2BFF' (bit10-13) _CP_OFF EQU H'3FFF' (bit10-13) _DATA_CP_ON EQU H'3EFF' (bit8) _DATA_CP_OFF EQU H'3FFF' (bit8) _PWRTE_OFF EQU H'3FFF' (bit3) _PWRTE_ON EQU H'3FF7' (bit3) _WDT_ON EQU H'3FFF' (bit2) _WDT_OFF EQU H'3FFB' (bit2) _LVP_ON EQU H'3FFF' (bit7) _LVP_OFF EQU H'3F7F' (bit7) _MCLRE_ON EQU H'3FFF' (bit5) _MCLRE_OFF EQU H'3FDF' (bit5) _ER_OSC_CLKOUT EQU H'3FFF' (bit1,4,0) _ER_OSC_NOCLKOUT EQU H'3FFE' (bit1,4,0) _INTRC_OSC_CLKOUT EQU H'3FFD' (bit1,4,0) _INTRC_OSC_NOCLKOUT EQU H'3FFC' (bit1,4,0) _EXTCLK_OSC EQU H'3FEF' (bit1,4,0) _LP_OSC EQU H'3FEC' (bit1,4,0) _XT_OSC EQU H'3FED' (bit1,4,0) _HS_OSC EQU H'3FEE' (bit1,4,0) uiteindelijk is dit hoe je het invoerd: __CONFIG 11110101100010 of als je niet in bits wil: __config _HS_OSC & WDT_OFF & PWRTE_OFF & MCLRE_ON & _BODEN_ON & _LVP_OFF & _DATA_CP_OFF & CP_OFF