..I can add that this is one of MANY MANY different config settings I have tried..
..I can add that this is one of MANY MANY different config settings I have tried..
It can be confusing to switch. It looks like you are using the wrong configs for the PIC18F2520.
You should be looking at the mpasm folder called 'MPASM Suite' (at least that is what mine is called), and then look at file: P18F2520.INC
At the bottom of that file, you will see all your options, like this:
Take a look at 2.6.4 in the datasheet (and all around the oscillator section). Here is one of the figures there:Code:; The following is an assignment of address values for all of the ; configuration registers for the purpose of table reads _CONFIG1H EQU H'300001' _CONFIG2L EQU H'300002' _CONFIG2H EQU H'300003' _CONFIG3H EQU H'300005' _CONFIG4L EQU H'300006' _CONFIG5L EQU H'300008' _CONFIG5H EQU H'300009' _CONFIG6L EQU H'30000A' _CONFIG6H EQU H'30000B' _CONFIG7L EQU H'30000C' _CONFIG7H EQU H'30000D' ;----- CONFIG1H Options -------------------------------------------------- _OSC_LP_1H EQU H'F0' ; LP oscillator _OSC_XT_1H EQU H'F1' ; XT oscillator _OSC_HS_1H EQU H'F2' ; HS oscillator _OSC_RC_1H EQU H'F3' ; External RC oscillator, CLKO function on RA6 _OSC_EC_1H EQU H'F4' ; EC oscillator, CLKO function on RA6 _OSC_ECIO6_1H EQU H'F5' ; EC oscillator, port function on RA6 _OSC_HSPLL_1H EQU H'F6' ; HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1) _OSC_RCIO6_1H EQU H'F7' ; External RC oscillator, port function on RA6 _OSC_INTIO67_1H EQU H'F8' ; Internal oscillator block, port function on RA6 and RA7 _OSC_INTIO7_1H EQU H'F9' ; Internal oscillator block, CLKO 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_0_2L EQU H'E7' ; Maximum setting _BORV_1_2L EQU H'EF' ; _BORV_2_2L EQU H'F7' ; _BORV_3_2L EQU H'FF' ; Minimum setting ;----- CONFIG2H Options -------------------------------------------------- _WDT_OFF_2H EQU H'FE' ; WDT disabled (control is placed on the SWDTEN bit) _WDT_ON_2H EQU H'FF' ; WDT enabled _WDTPS_1_2H EQU H'E1' ; 1:1 _WDTPS_2_2H EQU H'E3' ; 1:2 _WDTPS_4_2H EQU H'E5' ; 1:4 _WDTPS_8_2H EQU H'E7' ; 1:8 _WDTPS_16_2H EQU H'E9' ; 1:16 _WDTPS_32_2H EQU H'EB' ; 1:32 _WDTPS_64_2H EQU H'ED' ; 1:64 _WDTPS_128_2H EQU H'EF' ; 1:128 _WDTPS_256_2H EQU H'F1' ; 1:256 _WDTPS_512_2H EQU H'F3' ; 1:512 _WDTPS_1024_2H EQU H'F5' ; 1:1024 _WDTPS_2048_2H EQU H'F7' ; 1:2048 _WDTPS_4096_2H EQU H'F9' ; 1:4096 _WDTPS_8192_2H EQU H'FB' ; 1:8192 _WDTPS_16384_2H EQU H'FD' ; 1:16384 _WDTPS_32768_2H EQU H'FF' ; 1:32768 ;----- CONFIG3H Options -------------------------------------------------- _MCLRE_OFF_3H EQU H'7F' ; RE3 input pin enabled; MCLR disabled _MCLRE_ON_3H EQU H'FF' ; MCLR pin enabled; RE3 input pin disabled _LPT1OSC_OFF_3H EQU H'FB' ; Timer1 configured for higher power operation _LPT1OSC_ON_3H EQU H'FF' ; Timer1 configured for low-power operation _PBADEN_OFF_3H EQU H'FD' ; PORTB<4:0> pins are configured as digital I/O on Reset _PBADEN_ON_3H EQU H'FF' ; PORTB<4:0> pins are configured as analog input channels on Reset _CCP2MX_PORTBE_3H EQU H'FE' ; CCP2 input/output is multiplexed with RB3 _CCP2MX_PORTC_3H EQU H'FF' ; CCP2 input/output is multiplexed with RC1 ;----- CONFIG4L Options -------------------------------------------------- _STVREN_OFF_4L EQU H'FE' ; Stack full/underflow will not cause Reset _STVREN_ON_4L EQU H'FF' ; Stack full/underflow will cause Reset _LVP_OFF_4L EQU H'FB' ; Single-Supply ICSP disabled _LVP_ON_4L EQU H'FF' ; Single-Supply ICSP enabled _XINST_OFF_4L EQU H'BF' ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode) _XINST_ON_4L EQU H'FF' ; Instruction set extension and Indexed Addressing mode enabled _DEBUG_ON_4L EQU H'7F' ; Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug _DEBUG_OFF_4L EQU H'FF' ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
![]()
Last edited by ScaleRobotics; - 6th February 2010 at 17:31.
Hi, Glenn
a '2520 config header, just for example.
Powerful devices need to configure more registers ... that's it !!!Code:'***************************************************************************** '***************************************************************************** 'Config processeur '***************************************************************************** ' @ __CONFIG _CONFIG1H, _IESO_OFF_1H & _OSC_XT_1H & _FCMEN_OFF_1H @ __CONFIG _CONFIG2L, _BOREN_OFF_2L & _PWRT_ON_2L @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H @ __CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_PORTBE_3H @ __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _DEBUG_OFF_4L & _XINST_OFF_4L @ __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L @ __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H @ __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L @ __CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H & _WRTD_OFF_6H @ __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L @ __CONFIG _CONFIG7H, _EBTRB_OFF_7H '***************************************************************************** 'Config TIMERs OSCCON = %01100000 '***************************************************************************** 'Config TIMERs T0CON = %00000010 ' 16Bits 1/8 prescaler, Horloge Système, OFF ' Utilisé pour détection sous regime ou arret T1CON = %00000000 '1/1 prescaler, Quartz 32,768 ' *** Géré par Elapsed Timer *** T3CON = %01110001 ' CCP SUR TMR3,1/8 prescaler,Horloge système,ON ' Mesure de la vitesse '***************************************************************************** 'Config CCP1 arret CCP2 CCP1CON = %00000101 ' Capture sur front montant CCP2CON = %00000000 'inhibition module CCP2 '***************************************************************************** 'Inhibition SSP SSPCON1.5 = 0 '***************************************************************************** 'Inhibition Comparateurs CMCON = 7 '***************************************************************************** 'Inhibition Reference interne CVRCON = 0 '***************************************************************************** 'Config Interruptions INTCON = %10000000 INTCON2 = %11110000 INTCON3 = %00000000 PIE1 = %00000100 PIE2 = %00000000 IPR1 = %00000001 IPR2 = %00000000 RCON = %10000000 '***************************************************************************** 'Config ADC '***************************************************************************** ADCON0 = %11000000 ' ADCON1 = %00011100 ' A0 > A2 Vref+ A3, Vref- = Vss ADCON2 = %10100110 ' Right Just., 8Tad, clock /64 '***************************************************************************** '***************************************************************************** 'Config et Prepositionnement E/S '***************************************************************************** PORTA = %00110000 PORTB = %00010000 PORTC = %00001000 'PORTD = 0 'PORTE = 0 TRISA = %00011111 TRISB = %00000110 TRISC = %00000111 'TRISD = %00000000 'TRISE = %00000000 '
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Glen,
Probably a typo:
You said
"..I have a pulldown on MCLR and the LED's are connected with resistors.. I want to use the internal oscillator, and no WDT."
A pulldown (tied to ground) on MCLR will keep the pic from working. I assume, since you said your PIC16's programs function its just a typo and you are using a "pullup" resistor (tied to Vcc) on MCLR. Don't give up!
Hi Glenn,
Couple of minor details: In Assembly the ' apostrophe does not work to make a line a comment, you MUST use the semicolon ;
now this line:
<b>I HAVE NOT</b> checked the data sheet, If you use the MCLR pin as an output, <b>MOST PICS </b>have an Open Collector output, which requires a PullUp resistor, as they can only pull down.Code:..I have a pulldown on MCLR and the LED's are connected with resistors.. I want to use the internal oscillator, and no WDT.
Try this for your osc:
__CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ; enable int osc, disable failsafe osc enable, disable internal external switchover
<b>Ok now I have looked at the data sheet,</b> as for the MCLR pin This is from the data sheet:INPUT ONLYThe fourth pin of PORTE (MCLR/VPP/RE3) is an input
only pin. Its operation is controlled by the MCLRE Configuration
bit. When selected as a port pin (MCLRE = 0),
it functions as a digital input only pin; as such, it does not
have TRIS or LAT bits associated with its operation.
Otherwise, it functions as the device’s Master Clear
input. In either configuration, RE3 also functions as the
programming voltage input during programming.
Last edited by Archangel; - 6th February 2010 at 19:10.
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
scalerobotics: Yes, I have looked at that, but still, for example that include mentions:
_BOREN_OFF_2L
..But if I include that in my PBP program I get a "symbol previosly not defined" error from mpasmwin:
Error[113] C:\PBP\LTIMERT.ASM 70 : Symbol not previously defined (_BOREN_OFF_2L)
acetronics: Same with that, a good example is the _BOREN_OFF_2L that does not work ?
Just an example of working configbits for internal oscillator that works on 20MHz would be great, then I could try things after that, but now I cant even get the damned thing to run..
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Well, at maximum I presume ? actually I don't really understand what they mean exactly in that part of the datasheet, I would belive that I set one speed on the oscillator, and then the PLL multiplies it ? then 8x4 would give 32Mhz ? ..Ofcourse that would give me troubles to get excactly 20Mhz then, but still, it would work I think ? (but for exampe, "pause 1000" would not be one second)
Anyway, I could use another clock frequency too, the main reason to use 20Mhz is that I tried the same program on a 16f PIC with no internal oscillator, and then I used a 20Mhz xtal.
I simply wrote:
@ __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
with no comment at all..
I don't have an 18F2520 to test this on, but give this a try;
Code:asm __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H __CONFIG _CONFIG3H, _CCP2MX_PORTC_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L endasm DEFINE OSC 32 ' internal 8MHz x 4 with PLL enabled blueled var LATB.4 ' prevents read-modify-write redled var LATB.5 ' problems OSCTUNE = %0100000 ' turn on PLL for 4 x 8MHz OSCCON = %01110000 ' set 8MHz internal osc ADCON1 = %00001111 ' disable all A/D main: low redled low blueled pause 500 high redled pause 500 high blueled pause 500 goto main END
Bookmarks