Presetting Configuration Fuses (PIC Defines) into your Program


+ Reply to Thread
Results 1 to 40 of 83

Hybrid View

  1. #1
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Tissy... are you saying that modifying and saving your C:\PBP\18F2550.INC as follow
    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_HSPLL_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
    And use the following fuse setting...
    Code:
        asm
             CONFIG PLLDIV = 12         ; 96 MHz PLL Prescaler: Divide by 12 (48 MHz input)
             CONFIG CPUDIV = OSC1_PLL2  ; System Clock Postscaler: [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
             CONFIG USBDIV = 2          ; Full-Speed USB Clock Source: 96 MHz PLL/2                ;
             CONFIG FOSC = HS           ; HS oscillator, HS used by USB         
             CONFIG FCMEM = ON          ; Fail-Safe Clock Monitor enabled
             CONFIG IESO = OFF          ; Internal/External Switch Over Disabled
             CONFIG PWRT = ON           ; Power-up Timer enabled
             CONFIG BOR = ON_ACTIVE     ; Brown-out Reset Enabled when the device is not 
             CONFIG BORV = 43           ; Brown-out Voltage: 4.3V
             CONFIG VREGEN = ON         ; USB Voltage Regulator Enabled
             CONFIG WDT = ON            ; Watchdog timer =  HW Enabled - SW Disabled
             CONFIG WDTPS = 128         ; Watchdog Postscaler = 1:128
             CONFIG MCLRE = ON          ; MCLR Enabled
             CONFIG LPT1OSC = OFF       ; Timer1 oscillator configured for high power       
             CONFIG PBADEN = OFF        ; PORTB<4:0> pins are configured as digital I/O on Reset   
             CONFIG CCP2MX = OFF        ; CCP2 input/output is multiplexed with RB3
             CONFIG STVREN = OFF        ; Stack Overflow Reset Disabled
             CONFIG LVP = OFF           ; Low Voltage Programming Disabled
             CONFIG ICPRT = OFF         ; In-Circuit Debug/Programming Disabled      
             CONFIG XINST = ON          ; Extended Instruction Set Enabled
             CONFIG DEBUG = OFF         ; Background Debugger Disabled      
             CONFIG CP0 = OFF           ; Code Protection Block 0 Disabled
             CONFIG CP1 = OFF           ; Code Protection Block 1 Disabled
             CONFIG CP2 = OFF           ; Code Protection Block 2 Disabled
             CONFIG CP3 = OFF           ; Code Protection Block 3 Disabled
             CONFIG CPB = OFF           ; Boot Block Code Protection Disabled
             CONFIG CPD = OFF           ; Data EEPROM Code Protection Disabled
             CONFIG WRT0 = OFF          ; Write Protection Block 0 Disabled
             CONFIG WRT1 = OFF          ; Write Protection Block 1 Disabled
             CONFIG WRT2 = OFF          ; Write Protection Block 2 Disabled
             CONFIG WRT3 = OFF          ; Write Protection Block 3 Disabled
             CONFIG WRTB = OFF          ; Boot Block Write Protection Disabled
             CONFIG WRTC = OFF          ; Configuration Register Write Protection Disabled
             CONFIG WRTD = OFF          ; Data EEPROM Write Protection Disabled
             CONFIG EBTR0 = OFF         ; Table Read Protection Block 0 Disabled
             CONFIG EBTR1 = OFF         ; Table Read Protection Block 1 Disabled
             CONFIG EBTR2 = OFF         ; Table Read Protection Block 2 Disabled
             CONFIG EBTR3 = OFF         ; Table Read Protection Block 3 Disabled
             CONFIG EBTRB = OFF         ; Boot Block Table Read Protection Disabled
        ENDASM
    it works here...
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  2. #2
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Yup, affraid so. I have just comapared the .INC file to yours, exactly the same.

    I have also copied your ASM section to my code and it still produces a stack of errors.

    Any suggestions?

  3. #3
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    OK, i also have the same problem here.. hum hum when i add some code line as you did.

    SO it looks like PicBasic is not "New MPASM Compliant" for the config fuses. I'll contact Charles tomorrow.

    For now, what you can do is to place your config fuses in the 18F2550.INC in the PBP folder. BUT if you do different project and you need different config fuse setting, You can add a device to the MCS list and create a new .INC and .BAS file for it. OR do an include file to be loaded in the 18F2550.INC file.
    Code:
            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
            INCLUDE "C:\PBPProg\ConfigFuse.cfg" ; Your Config Fuses
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	32
    Just drop your config lines in the ConfigFuse.cfg file and it's work... this time. DOH sorry.
    Last edited by mister_e; - 30th October 2005 at 14:25.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  4. #4
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Thanks for that. I thought i was going mad !! Theres nothing worse than people saying it should work when it doesn't. You have save my insanity.

    I think the .CFG approach is a good solution.

    Many thanks,

    Steve

  5. #5
    Join Date
    Sep 2005
    Location
    delhi
    Posts
    14


    Did you find this post helpful? Yes | No

    Default Warning[230]c:\...\..:__CONFIG has been deprecated for PIC1

    Quote Originally Posted by Tissy
    Thanks for that. I thought i was going mad !! Theres nothing worse than people saying it should work when it doesn't. You have save my insanity.

    I think the .CFG approach is a good solution.

    Many thanks,

    Steve
    hi,
    i also facing similar problem if i try to compile programe on 18f452 i get the similar message like:
    Warning[230]c:\develo~1\susdco~1\rfusb~1.asm 67:__CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
    i am using pbp2.44 with mpasm7.21.
    I tried to rectify the problems with the above directives but fail should i go for the other version of mplab
    pl. help
    thanks

  6. #6
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Havin gtaken the .CFG route, Steve does yours come up with these errors?
    Code:
    Warning[205] c:\pbp\sdcconfigfuse.cfg 1 : Found directive in column 1. (CONFIG)
    Warning[205] c:\pbp\sdcconfigfuse.cfg 2 : Found directive in column 1. (CONFIG)
    Warning[205] c:\pbp\sdcconfigfuse.cfg 3 : Found directive in column 1. (CONFIG)
    Warning[205] c:\pbp\sdcconfigfuse.cfg 4 : Found directive in column 1. (CONFIG)
    Warning[205] c:\pbp\sdcconfigfuse.cfg 5 : Found directive in column 1. (CONFIG)
    Could you post your .CFG file?

    Cheers

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    The CFG file is the one i post few post before. You just need to Indent your CONFIG lines as i did.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

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


    Did you find this post helpful? Yes | No

    Default

    Ah, I see what you mean!

    Code:
    Define XTAL 48
    OSCTUNE.6 =1
    ASM
       CONFIG OSC=HSPLL

  9. #9
    Join Date
    Jan 2011
    Location
    Skopje,Macedonia
    Posts
    71


    Did you find this post helpful? Yes | No

    Default Re: Presetting Configuration Fuses (PIC Defines) into your Program

    I got this error: overwriting previous address contents (2007)
    I write this line @ __CONFIG _INTRC_OSC_NOCLKOUT to turn on the internal oscilator of the PIC16F628A,
    I fix any mistakes what I think I made them,but there are errors.I DEFINE OSC 4,it's not working.

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


    Did you find this post helpful? Yes | No

    Default Success! Thanks Bruce!

    Thanks Bruce, that does the trick! Just did exactly as you said, and now it lets me compile inside my program code like this:

    Code:
    Define XTAL 48
    OSCTUNE.6 =1
    ASM
       CONFIG OSC=HSPLL 
       CONFIG CPUDIV=OSC1
       CONFIG PLLDIV=5
       CONFIG LPT1OSC=OFF 
       CONFIG CP0=OFF 
       CONFIG WDTEN=ON 
       CONFIG XINST=OFF 
       CONFIG IOL1WAY=OFF
       CONFIG STVREN=OFF 
       CONFIG T1DIG=ON 
       CONFIG FCMEN=OFF 
       CONFIG WDTPS=512
       CONFIG RTCOSC=T1OSCREF
    ENDASM
    And my LED is blinking at the right speed. Yes, I could just edit configs in the .inc file, but then you have to change it for each project. A pain if you want to jump around from unfinished project to unfinished project. Oh, that's just me....

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


    Did you find this post helpful? Yes | No

    Default

    Cool. Maybe the fix is something as simple as melabs changing to something other than OSC?

    Just bear-in-mind that your next PBP update will change everything, and any patch will fail since you've modified your library files...;o)
    Regards,

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

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


    Did you find this post helpful? Yes | No

    Default

    Yes, I do. My question sort of was:

    Is there a work around. Sounds like the answer is NO for the newer chips that do not have the CONFIGxL/H in their .inc file.

    Which brings me to my next question:
    Since it appears that the only hang up is the way PBP checks to see if you can run at the processor speed, do you think this can be fixed pretty easily by MeLabs? Or do you think I am making it out to be easier than it really is. I have tried to do a work-around, but have not succeeded (yet).

    It is not such a big deal, as I can declare them as you suggest. But I am stubborn, and it appears to be one single register that needs to be set, and it would work.

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


    Did you find this post helpful? Yes | No

    Default

    I'm not sure what the fix would be to be honest, but if you're up for an experiment, try this;

    Make a backup copy of your PBPPIC18.LIB.

    Now use an editor to find & replace all instances of OSC with XTAL.

    Save the .LIB file, and compile with DEFINE XTAL 48, and the new config directives in your code.

    Does it work?
    Regards,

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

Similar Threads

  1. pic program crashing
    By comwarrior in forum General
    Replies: 5
    Last Post: - 8th July 2009, 16:33
  2. HSERIN & Interupts (aka controlling PIC programs from a remote PC)
    By HankMcSpank in forum mel PIC BASIC Pro
    Replies: 16
    Last Post: - 17th June 2009, 14:46
  3. Making Program Code Space your playground...
    By Melanie in forum Code Examples
    Replies: 15
    Last Post: - 19th July 2008, 08:26
  4. size of program vs mem on pic
    By PICMAN in forum General
    Replies: 1
    Last Post: - 1st March 2005, 17:23
  5. Serial communication PIC to PIC help.
    By Rubicon in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 24th January 2005, 15:45

Members who have read this thread : 10

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