Trying to migrate to 18F..


Closed Thread
Results 1 to 30 of 30
  1. #1
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80

    Default Trying to migrate to 18F..

    I been using 16Fx for some time now, and now I wanted to use something more powerful, I looked up a nice PIC, 18F4620, and checked that it was PBP compatible, yes, and ordered.

    First I tried to just recompile a program written for 16F877A, since they are basically pin compatiblie, and it was a very easy program.

    BUT.. pbpw says that MP does not support 18F family and that I should use mpasm instead.

    First problem, mpasm does not exist.. I reinstall the latest version of mplab IDE, still doesnt work, google a bit, set the path to include mpasm catalog, but still no go, there are no mpasm.exe ? ..but there are a mpasmwin.exe and in the documentation it says that its supported too, so I tried..

    C:\PBP>pbpw -p18f4620 -ampasmwin tst10
    PICBASIC PRO(TM) Compiler 2.50b, (c) 1998, 2008 microEngineering Labs, Inc.
    All Rights Reserved.
    Error[118] C:\PBP\TST10.ASM 103 : Overwriting previous address contents (0000)
    Error[118] C:\PBP\TST10.ASM 103 : Overwriting previous address contents (0001)
    Error[118] C:\PBP\TST10.ASM 109 : Overwriting previous address contents (0002)
    Error[118] C:\PBP\TST10.ASM 109 : Overwriting previous address contents (0003)
    Error[118] C:\PBP\TST10.ASM 115 : Overwriting previous address contents (0004)
    Error[118] C:\PBP\TST10.ASM 115 : Overwriting previous address contents (0005)
    Error[118] C:\PBP\TST10.ASM 121 : Overwriting previous address contents (0006)
    Error[118] C:\PBP\TST10.ASM 121 : Overwriting previous address contents (0007)

    C:\PBP>

    Fail..

    ANd I have no idea why..

    First I thought it was the config switches, but after playing around with them it doesnt get any better

    Any idea what I have missed ?

    I wrote an even simpler program that would just blink a LED, and get the same errors..

    ..I dont like mpasm

  2. #2
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Hmm, looking in the tst.asm I can see that all errors points to my config lines

    Its REALLY REALLY stupid that the config lines are in different formats between mp and mpasm

    Theese are the config switches I used the last time.. but I tried at least 20 more variants..

    @ __CONFIG _CONFIG1H, _OSC_HS_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H
    @ __CONFIG _CONFIG3H, _PBADEN_OFF_3H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_ON_4L

    This was my original attempt after reading the docs..

    @ __config _OSC_HS &_LVP_OFF &_WDT_OFF

    ..And yes I am using a external xtal @24MHz, and yes I know that there are a internal osc in this pic.

  3. #3
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Did you comment out the correct lines in the inc file?
    Dave
    Always wear safety glasses while programming.

  4. #4
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mackrackit View Post
    Did you comment out the correct lines in the inc file?
    From the error I would say no. Note: you will have to comment them again after a PBP upgrade too.
    In case you are not aware what Mackrackit is talking about, or if someone new to PBP reads this, the file Mackrackit is refering to is the 18f4620.inc file located in the root directory of your PBP installation. If you already know this, great someone new who sees this might not.
    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.

  5. #5
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Dave
    Always wear safety glasses while programming.

  6. #6
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Aha, so I cannot really override settings with statements in my sourcecode, as I can with pm ?

    ..Since this is a 18F device PM isnt supported anyway, so I guess I can change as I like in the file.

    Now I just changed the .INC file to my needs, and it worked. (well, at least it compiled without warnings, I never uploaded it to my pic)

    Can I just comment out everything there, and then ALWAYS set the defaults in each sourcecode ? ..then I have to write it mpasm style ofcourse, but since it's a 18F device I will never use PM for it anyway. (If ME-labs doesn't release a version of PM supporting 18F.. wich I really would love if they did.)

    ..As I said, I never use neither 18F devices or mpasm before..


    Anyway, Thanks for the help, without this forum I probably would have given up on PBP a long time ago.. now I nearly convinced several guys at work to start using it too

  7. #7
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    You will not even notice MPASM after awhile. For that matter I have never used PM....

    Yes to setting the configs in source. But only comment out the actual config lines in the inc.
    The other stuff is needed no matter what.
    Dave
    Always wear safety glasses while programming.

  8. #8
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Well, I'm back again...

    Last time I got so tired of it so I quitted that project and started with other stuff instead, PIC16F based, coz there I never get any of those troubles.

    *Every* single time I try to use a 18f pic I seriously considering to get another hobby, I really really really HATE mpasm.. it NEVER f**ing work.. I dont want to know how many hour I been using on this crap

    I write a program, compile it with like 87665 errors, trying to get the config bits correctly (wich always works on 16f and mp) and after some hour or so I MAYBE can compile it witn just warnings, and then I upload it to the pic, and it does NOT work..

    I REALLY try to read both the includes of mpasm AND microchips datasheets, but still, I never get it right.. I try to comment out all config directives in the PBP include (tor the correct pic), or sometimes just the ones I want to change.. but nonono.

    ..If I at that point change the config bits to "mp-style" and compile it for a 16f (with mp), it ofcourse works directly with no problems... so its NOT my code, its the configbits.

    The pic I try to use now is a PIC18F2520 and since my long advanced program (that works perfectly fine on a pin compatible 16F876A) OFCOURSE didn't work, I created a reeeally simple short program that just blinked two LED's..

    Code:
    @	 __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
    @  __CONFIG   _CONFIG1H, _FOSC_INTOSCIO_EC_1H
    '@  __CONFIG   _CONFIG2H, _MCLRE_OFF_2H
    @  __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @  __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
    @  __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
    
    DEFINE OSC 20	' Lets work at 20 MHz
    
    blueled		var PORTB.4
    redled		var PORTB.5
    
    main:
    	low redled
    	low blueled
    	pause 500
    	high redled
    	pause 500
    	high blueled
    	pause 500
    	goto main
    This compiles with no errors, but warnings (about deprecated __CONFIG for example)

    ..I have a pulldown on MCLR and the LED's are connected with resistors.. I want to use the internal oscillator, and no WDT.

    all __CONFIG statements in the PBP 18F8520.INC are commented out.

    Can anyone point me to somwhere this are explained ? or tell me what the problem is ?

  9. #9
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    ..I can add that this is one of MANY MANY different config settings I have tried..

  10. #10
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Glenn View Post
    Code:
    @	 __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
    @  __CONFIG   _CONFIG1H, _FOSC_INTOSCIO_EC_1H
    '@  __CONFIG   _CONFIG2H, _MCLRE_OFF_2H
    @  __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @  __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
    @  __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
    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:

    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
    Take a look at 2.6.4 in the datasheet (and all around the oscillator section). Here is one of the figures there:

    Attached Images Attached Images  
    Last edited by ScaleRobotics; - 6th February 2010 at 17:31.

  11. #11
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,614


    Did you find this post helpful? Yes | No

    Default

    Hi, Glenn

    a '2520 config header, just for example.

    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
    '
    Powerful devices need to configure more registers ... that's it !!!

    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 " !!!
    *****************************************

  12. #12


    Did you find this post helpful? Yes | No

    Default

    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!

  13. #13
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    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:
    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.
    <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.
    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:
    The 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.
    INPUT ONLY
    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.

  14. #14
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    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..

  15. #15
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mark_s View Post
    Glen,

    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!
    Oops, yes, its connected to Vcc with a 10k resistor

  16. #16
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Joe S. View Post
    Hi Glenn,
    Couple of minor details: In Assembly the ' apostrophe does not work to make a line a
    Well, if the ' is before the @ it should work ? or ?

    Quote Originally Posted by Joe S. View Post
    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
    This gives me..

    Error[113] C:\PBP\LTIMERT.ASM 63 : Symbol not previously defined (_OSC_INTIO67
    _1H)

    ..And the usual "deprecated" warning about __CONFIG.

  17. #17
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Glenn View Post

    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..
    Section 2.6 datasheet.
    section 2.64 " "
    32 mhz is your speed limit using PLL and internal osc.
    Set it up in OSCCON register
    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.

  18. #18
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Glenn View Post
    Well, if the ' is before the @ it should work ? or ?



    This gives me..

    Error[113] C:\PBP\LTIMERT.ASM 63 : Symbol not previously defined (_OSC_INTIO67
    _1H)

    ..And the usual "deprecated" warning about __CONFIG.
    Did you write it @ __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ; enable int osc, disable failsafe osc enable, disable internal external switchover ?
    As for ' , is a PBP compiler directive, whereas ; directs both compiler and assembler
    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.

  19. #19
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Joe S. View Post
    Section 2.6 datasheet.
    section 2.64 " "
    32 mhz is your speed limit using PLL and internal osc.
    Set it up in OSCCON register
    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.

    Quote Originally Posted by Joe S. View Post
    Did you write it @ __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ; enable int osc, disable failsafe osc enable, disable internal external switchover ?
    As for ' , is a PBP compiler directive, whereas ; directs both compiler and assembler
    I simply wrote:

    @ __CONFIG _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H

    with no comment at all..

  20. #20
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    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
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  21. #21
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    bruce:

    I get this..

    Warning[230] C:\PBP\LTIMERT3.ASM 64 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
    Error[113] C:\PBP\LTIMERT3.ASM 64 : Symbol not previously defined (_OSC_INTIO67_1H)
    Warning[230] C:\PBP\LTIMERT3.ASM 65 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
    Warning[230] C:\PBP\LTIMERT3.ASM 66 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
    Error[113] C:\PBP\LTIMERT3.ASM 66 : Symbol not previously defined (_CCP2MX_PORTC_3H)
    Warning[230] C:\PBP\LTIMERT3.ASM 67 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.

  22. #22
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Hi Glenn,

    Newer versions of PBP include w = -230 in the .INC file that gets rid of the deprecated
    warning.

    I.E. a new version .INC file looks something like this if you have the default config settings
    commented out.

    Code:
       NOLIST
        ifdef PM_USED
            LIST
            "Error: PM does not support this device.  Use MPASM."
            NOLIST
        else
            LIST
            LIST p = 18F2520, r = dec, w = -311, w = -230, f = inhx32
            INCLUDE "P18F2520.INC"   ; MPASM  Header
           ; __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_ON_3H
           ; __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	64
    These are all you have commented out right? What version of PBP are you using?
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  23. #23
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    I'm using 2.50b, and my include looks like:

    Code:
    ;****************************************************************
    ;*  18F2550.INC                                                 *
    ;*                                                              *
    ;*  By        : Leonard Zerman, Jeff Schmoyer                   *
    ;*  Notice    : Copyright (c) 2004 microEngineering Labs, Inc.  *
    ;*              All Rights Reserved                             *
    ;*  Date      : 12/31/04                                        *
    ;*  Version   : 2.46                                            *
    ;*  Notes     :                                                 *
    ;****************************************************************
            NOLIST
        ifdef PM_USED
            LIST
            "Error: PM does not support this device.  Use MPASM."
            NOLIST
        else
            LIST
            LIST p = 18F2550, r = dec, w = -311, f = inhx32
            INCLUDE "P18F2550.INC"	; MPASM  Header
            ;__CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
            ;__CONFIG    _CONFIG1H, _FOSC_HS_1H
            ;__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
            ;__CONFIG    _CONFIG3H, _PBADEN_OFF_3H
            ;__CONFIG    _CONFIG4L, _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	32
    However, its not the warings that I have problems with, its the errors

  24. #24
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Hmm, strange. I thought the "version 2.46" was a bit suspect, so I looked one time more, and found a "18f2520.inc.org", which probably is the correct file, and the other is something I cut'n'pasted in from someone else ?

    That one looks like:

    Code:
    ;****************************************************************
    ;*  18F2520.INC                                                 *
    ;*                                                              *
    ;*  By        : Leonard Zerman, Jeff Schmoyer                   *
    ;*  Notice    : Copyright (c) 2006 microEngineering Labs, Inc.  *
    ;*              All Rights Reserved                             *
    ;*  Date      : 06/05/06                                        *
    ;*  Version   : 2.47                                            *
    ;*  Notes     :                                                 *
    ;****************************************************************
            NOLIST
        ifdef PM_USED
            LIST
            "Error: PM does not support this device.  Use MPASM."
            NOLIST
        else
            LIST
            LIST p = 18F2520, r = dec, w = -311, w = -230, f = inhx32
            INCLUDE "P18F2520.INC"   ; MPASM  Header
            __CONFIG    _CONFIG1H, _OSC_XT_1H
            __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
            __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
            __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	64
    Still bot 2.50b, but 2.47, but maybe the includes only get updated when needed. (sounds logical)

    Also I didnt do a clean install, I upgraded from an old version.

  25. #25
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Changed from the old include to the new one, and to my surprise the code compiled without errors ?

    ..However, it still doesnt work no flashy LED's

  26. #26
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    It would really help to know which PIC you're compiling for, and which compiler you're
    using....

    Are you compiling for an 18F2550 or 18F2520?

    Are you actually compiling with PBP 2.50b, 2.47, 2.46...?
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  27. #27
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    I probably shouldnt try to do anything serious at the middle of the night

    The pic is a 18F2520, and I have no idea why I choosed to post the include for 2550 ..probably too tired

    PBP is version 2.50b, HOWEVER the include states "Version: 2.47", I GUESS that this is normal however since I did a standard installation, but I installed it over my old installation, which I dont remember what version it was, but it can have been 2.46 or 2.47.

  28. #28
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    It's porobably 2.5. Not all include files are updated with each new version.

    If you try the example I posted above, with config settings in the code, then you'll need to comment the config settings in your 18F2520.INC file just like you did with your 18F2550.INC file.

    Then get some sleep...
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  29. #29
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    Yes, I guess so too, no need for changing the version of the includes if nothing in them have been changed.

    and I comented out everything in the correct include, now it looks like:

    Code:
    ;****************************************************************
    ;*  18F2520.INC                                                 *
    ;*                                                              *
    ;*  By        : Leonard Zerman, Jeff Schmoyer                   *
    ;*  Notice    : Copyright (c) 2006 microEngineering Labs, Inc.  *
    ;*              All Rights Reserved                             *
    ;*  Date      : 06/05/06                                        *
    ;*  Version   : 2.47                                            *
    ;*  Notes     :                                                 *
    ;****************************************************************
            NOLIST
        ifdef PM_USED
            LIST
            "Error: PM does not support this device.  Use MPASM."
            NOLIST
        else
            LIST
            LIST p = 18F2520, r = dec, w = -311, w = -230, f = inhx32
            INCLUDE "P18F2520.INC"   ; MPASM  Header
    ;        __CONFIG    _CONFIG1H, _OSC_INTIO7_1H
    ;        __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H
    ;        __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
    ;        __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	64
    ..And the actual code look like:

    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
    ..And it compiled with no errors.

    The setup is just a PIC18F2520 with pin20 connected to +5V, 8/19 to gnd,
    a 10k resistor from pin1 (MCLR) to +5V, and two LED's connected via resistors
    from pin 26 (RB5) and 25 (RB4) I also added two cap's between Vcc and gnd,
    one 1uF and one 100nF.

    I also have a pickit2 connector wired up to usual pins.

    ..And now I'm going to the bed

  30. #30
    Join Date
    Sep 2008
    Location
    Stockholm
    Posts
    80


    Did you find this post helpful? Yes | No

    Default

    I'm starting to suspect that this PIC is broken.. but its a bit strange that it's possible to program and verify it anyway.

    I'll see if I can buy another one tomorrow, but I dont think my local supplier have it in stock..

Similar Threads

  1. 16F to 18F transition pains
    By lurker in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 5th December 2008, 01:35
  2. 18F Config fuses
    By Angus Anderson in forum mel PIC BASIC Pro
    Replies: 20
    Last Post: - 18th December 2007, 15:59
  3. Super easy 18F print strings to UART
    By Bruce in forum Code Examples
    Replies: 0
    Last Post: - 26th August 2007, 23:19
  4. Upgrading 16F to 18F
    By Ron Marcus in forum General
    Replies: 1
    Last Post: - 29th March 2006, 09:44
  5. Newby- PBP wont compile for 18F (MPLAB)
    By jd76duke in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 17th December 2005, 23:30

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts