That's very useful thanks but how do you know which configs go on which line ? can you mix them up?
CONFIG1H? xxxx & xxxx & xxxx etc etc
CONFIG2H?
CONFIG3H?
etc
Or do you just have as many config lines as reqd?
That's very useful thanks but how do you know which configs go on which line ? can you mix them up?
CONFIG1H? xxxx & xxxx & xxxx etc etc
CONFIG2H?
CONFIG3H?
etc
Or do you just have as many config lines as reqd?
Maybe I am not understanding the question, the 1H things go on the 1H line, 2H on the 2H line...
Dave
Always wear safety glasses while programming.
Hi,
Just look at the .INFO file, it has a "section" for each CONFIG you can possibly set for the device, choose one from each section if you don't know the default, like:
That way you don't have to know which bit belongs to which register.Code:; This is for the 18F26K20 #CONFIG CONFIG FOSC = HSPLL CONFIG FCMEM = ON CONFIG IESO = OFF CONFIG PWRT = ON CONFIG BOREN = OFF ; And so on #ENDCONFIG
Otherwise you have to resort to the datasheet and/or the .inc file for the device located in the MPASM directory, at the bottom of that file you'll find which bit goes where, like:And so on but again, I prefer the new way posted above.Code:;----- CONFIG1H Options -------------------------------------------------- _FOSC_LP_1H EQU H'F0' ; LP oscillator _FOSC_XT_1H EQU H'F1' ; XT oscillator _FOSC_HS_1H EQU H'F2' ; HS oscillator _FOSC_RC_1H EQU H'F3' ; External RC oscillator, CLKOUT function on RA6 _FOSC_EC_1H EQU H'F4' ; EC oscillator, CLKOUT function on RA6 _FOSC_ECIO6_1H EQU H'F5' ; EC oscillator, port function on RA6 _FOSC_HSPLL_1H EQU H'F6' ; HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1) _FOSC_RCIO6_1H EQU H'F7' ; External RC oscillator, port function on RA6 _FOSC_INTIO67_1H EQU H'F8' ; Internal oscillator block, port function on RA6 and RA7 _FOSC_INTIO7_1H EQU H'F9' ; Internal oscillator block, CLKOUT function on RA6, port function on RA7 _FCMEN_OFF_1H EQU H'BF' ; Fail-Safe Clock Monitor disabled _FCMEN_ON_1H EQU H'FF' ; Fail-Safe Clock Monitor enabled _IESO_OFF_1H EQU H'7F' ; Oscillator Switchover mode disabled _IESO_ON_1H EQU H'FF' ; Oscillator Switchover mode enabled ;----- CONFIG2L Options -------------------------------------------------- _PWRT_ON_2L EQU H'FE' ; PWRT enabled _PWRT_OFF_2L EQU H'FF' ; PWRT disabled _BOREN_OFF_2L EQU H'F9' ; Brown-out Reset disabled in hardware and software _BOREN_ON_2L EQU H'FB' ; Brown-out Reset enabled and controlled by software (SBOREN is enabled) _BOREN_NOSLP_2L EQU H'FD' ; Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled) _BOREN_SBORDIS_2L EQU H'FF' ; Brown-out Reset enabled in hardware only (SBOREN is disabled) _BORV_30_2L EQU H'E7' ; VBOR set to 3.0 V nominal _BORV_27_2L EQU H'EF' ; VBOR set to 2.7 V nominal _BORV_22_2L EQU H'F7' ; VBOR set to 2.2 V nominal _BORV_18_2L EQU H'FF' ; VBOR set to 1.8 V nominal
/Henrik.
Thanks for the guidance here is my new 18F2620 config.
Below is my working old 16F886 config. Any glaring errors in the above? I'm just swapping chips and I want all functions to remain the same.Code:'------------------------------ New General 18F2620 configuration -------------------------- '#CONFIG ' __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ' __CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOREN_OFF_2L ' __CONFIG _CONFIG2H, _WDT_OFF_2H ' __CONFIG _CONFIG3H, _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H ' __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L '#ENDCONFIG 'DEFINE OSC 8 'Set PicBasic Pro processor speed to 8 Mhz 'OSCCON = %01110110 'Internal 8 mhz Osc and stable 'CMCON = %00000111 'Comparators Off 'T1CON = %00110000 '$30 = Prescaler 1:8, TMR1 OFF 'TRISA = %00001011 'SET PORTA0, A1 & A3 AS INPUTS, REST AS OUTPUTS 'TRISB = %00000000 'SET PORTB AS OUTPUTS 'TRISC = %10010000 'SET PORTC AS OUTPUTS EXCEPT PORT C4 & C7 'ADCON0 = %00000001 'SETUP ADC & ENABLE ADC MODULE on AD0 'ADCON1 = %00001110 'SETUP ADC SET REFV to VDD & VSS AN0 'ADCON2 = %00100010 'SETUP ADC FOSC/32 LEFT JUSTIFY TAD 8
Code:'------------------------------ General 16F886 configuration -------------------------- #CONFIG __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT __CONFIG _CONFIG2, _WRT_OFF & _BOR21V #ENDCONFIG DEFINE OSC 8 'Set PicBasic Pro processor speed to 8 Mhz OSCCON = %01110101 'Internal 8 mhz Osc and stable CM1CON0 = 0 'Comparator Off CM2CON0 = 0 'Comparator Off T1CON = %00110000 '$30 = Prescaler 1:8, TMR1 OFF TRISA = %00001011 'SET PORTA0, A1 & A3 AS INPUTS, REST AS OUTPUTS TRISB = %00000000 'SET PORTB AS OUTPUTS TRISC = %10010000 'SET PORTC AS OUTPUTS EXCEPT PORT C4 & C7 ANSEL = %00000001 'SET INPUT AN0 AS ANALOG INPUT ANSELH = %00000000 'Disable PortB AD ADCON0 = %10000001 'SETUP ADC CONVERTER MODULE FOSC/32 & ENABLE ADC MODULE on AD0 ADCON1 = %00000000 'SETUP ADC LEFT JUSTIFY SET REFV to VDD & VSS
Thanks Peter
I moved to a new pic to gain memory space but the same program compiled for the new pic is nearly twice the size as the 16F886 version :?
Why is that and can I get some memory back. I don't need 18F longs for instance and that is already disabled in the compiler.
Hi,
My guess is that it's because on the 16 series (10 & 12 too I believe) the memory is "measured" in WORDS (14-bit words if I'm not mistaken) while on the 18 series it's measured in BYTES. So I don't think your program is actually getting twice as big, it's just displaying the size of it in BYTES instead of in WORDS.
/Henrik.
I still get the some config bits warning with pickit 2.
I can't see why?
Code:'------------------------------ General 18F2620 configuration -------------------------- #CONFIG __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H __CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOREN_OFF_2L __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L #ENDCONFIG DEFINE OSC 8 'Set PicBasic Pro processor speed to 8 Mhz OSCCON = %01110000 'Internal 8 mhz Osc WDTCON = %00010101 'Set watchdog Timer for 1 second CMCON = %00000111 'Comparators Off CVRCON = %00000000 'CvRef Powered Down CCP1CON= %00001100 'CCP1 Module PWM Mode CCP2CON= %00000000 'CCP2 Module Disabled HLVDCON= %00000000 'HLVCON Disabled T1CON = %00110000 '$30 = Prescaler 1:8, TMR1 OFF TRISA = %00001011 'SET PORTA0, A1 & A3 AS INPUTS, REST AS OUTPUTS TRISB = %00000000 'SET PORTB AS OUTPUTS TRISC = %10010000 'SET PORTC AS OUTPUTS EXCEPT PORT C4 & C7 ADCON0 = %00000001 'SETUP ADC & ENABLE ADC MODULE on AN0 ADCON1 = %00001110 'SETUP ADC SET REFV to VDD & VSS AN0 ADCON2 = %00100010 'SETUP ADC FOSC/32 LEFT JUSTIFY TAD 8
Hi,
What exactly does that mean, what warnings do you get and from where do you get them?
Your code compiles and assembles fine with PBP 3.0.7.4 & MPASM 5.45. Are you using the standalone software for the PICKit2 and is it THAT software that gives you these misterious warnings?
/Henrik.
Bookmarks