after a bit more experimentation....should be
__config _CONFIG1, _XT_OSC & _WDT_OFF & _MCLRE_ON & _LVP_OFF & _CP_OFF
NOLIST
endif
after a bit more experimentation....should be
__config _CONFIG1, _XT_OSC & _WDT_OFF & _MCLRE_ON & _LVP_OFF & _CP_OFF
NOLIST
endif
Peter Moritz.
Up the bush, Western Plains,
New South Wales,
Australia.
Yep, looks good to me. As you can see, the different configuration settings for the oscillator (and everything else) are at the bottom of the P16F886.inc file (the one in the MPASM folder):On the 16F886 there are two CONFIG words (on other chips there are more) so if you need to change something that resides in another CONFIG word you have to add a second line, likeCode:_LP_OSC EQU H'3FF8' _XT_OSC EQU H'3FF9' _HS_OSC EQU H'3FFA' _EC_OSC EQU H'3FFB' _INTRC_OSC_NOCLKOUT EQU H'3FFC' _INTRC_OSC_CLKOUT EQU H'3FFD' _EXTRC_OSC_NOCLKOUT EQU H'3FFE' _EXTRC_OSC_CLKOUT EQU H'3FFF' _INTOSCIO EQU H'3FFC' _INTOSC EQU H'3FFD' _EXTRCIO EQU H'3FFE' _EXTRC EQU H'3FFF'Then you have your defaults and it is what will be included in every program you compile for that particular target, no need to have them in your code if you don't want to.Code:__config _CONFIG2, WRT_HALF & _BOR21V
/Henrik.
Just throwing in my 10 cents here. Instead of changing the defaults in the PBP file, just make a seperate file with the configs you want. It can be a 1 line file with justthen "INCLUDE" the file in your programs. There are 2 reasons I suggest this. First is if you change the PBP file, then upgrade later, all your changes are lost. Second It is a simple matter to change your include file for different setups like now you want to use internal osc and so forth. Also it is much easier to understand for YOU in a year or 2 what the configs were doing without having to track down the .inc and read it.Code:__config yada yada yada
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
It's a good suggestion, just remember that you still have to edit the stock .INC file, commenting out the default config that's there.
Bert, your idea of putting CONFIG statement in an include file is a great one that I want to implement in all of my codes. However, I tried it in one of my working application codes and the code stopped working afterwards. In hopes you can tell me why here is what I did:
1. I created a new .inc file by copying and pasting the following statements into a new code file and saving it as a .inc file in the PBP folder where all of my codes are in a subfolder to the PBP folder.
INCLUDE "18F2550_4550_CONFIGS.inc" ' Setup CONFIGS for MCU
;--- if you un-comment these, you must comment the ones in the .inc file--
;ASM ; 18F2550/4550, 8mhz crystal
;__CONFIG _CONFIG1L, _PLLDIV_2_1L & _CPUDIV_OSC4_PLL6_1L & _USBDIV_2_1L
;__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H
;__CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _VREGEN_ON_2L
;__CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
;__CONFIG _CONFIG3H, _PBADEN_OFF_3H ; PortB resets as digital
;__CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
;ENDASM
2. I then replaced the CONFIG statements in my application code with the follwoing statement in which I commented out all of the original CONFIG statements:
Include "18F2550_4550_CONFIGS.inc"
;--- if you un-comment these, you must comment the ones in the .inc file--
;ASM ; 18F2550/4550, 8mhz crystal
; __CONFIG _CONFIG1L, _PLLDIV_2_1L & _CPUDIV_OSC4_PLL6_1L & _USBDIV_2_1L
; __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H
; __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _VREGEN_ON_2L
; __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
; __CONFIG _CONFIG3H, _PBADEN_OFF_3H ; PortB resets as digital
; __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
;ENDASM
3. The modified application code compiles and assembles OK and appears to run, but it no longer works correctly and I can't see why.
4. If I comment out the new .inc statement and uncomment the _CONFIG statements it works OK again.
Can you tell me what I am doing wrong?
Thanks, John Ellis
Last edited by jellis00; - 7th August 2011 at 22:56.
I assume they are not commented in the include file? I usually give the file a PBP extension, but I doubt that is it.Can you attach the .lst file created when you use the include?
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
Just my thoughts . . . change the file extension to .bas and make it the first line of code . . .
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.
I just override settings at the top of my programs.
I could be using the default values; I never bothered to check.Code:' PicBasic Pro program ' Michelle Science Project ' Game Show Buttons, version 1, April 2011 ASM @ DEVICE PIC16F877, HS_OSC, WDT_OFF, PWRT_ON, BOD_ON, LVP_OFF, CPD_OFF, WRT_OFF, DEBUG_OFF, PROTECT_OFF ENDASM DEFINE OSC 20 ' 15-33pF (22pF used) yada yada yada
But as someone said, I don't loose settings with future upgrades. Or worse, have the default settings changed and pull what little hair I have left trying to find what is wrong in my code.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
I found what apparently was causing the problem, but don't quite understand why. I changed the file extension to .pbp and had it in a 2nd level folder below my PBP folder while my application code resides in a 3rd level folder. IT was my understanding that as long as an include file was in a folder at a higher level than the code that was using it, that the INCLUDE statement would find it. However, unless I placed the include file in the same folder as my application code or moved the file to the PBP folder my application code wouldn't work. As long as it was in the 2nd level folder my application code wouldn't work.
Can anyone tell me how this works?
Just specify the path in your include line then. I do it all the time.
I have a root folder named PBP_PROG and some subfolders. One subfolder by application and a couple of other for various include type (DevBoards headers, LCD/GLCD drivers/wrapper, etc etc etc)
C:\PBP_Prog
C:\PBP_Prog\DemoXyz
C:\PBP_Prog\Nokia3310
Assuming I'm working on a prgram located in DemoXyz folder, If I want to use the Nokia3310 related include I just need to use the following line
INCLUDE "..\Nokia3310\GLCD_NOKIA.PBP"
the file extension do not make any difference, it could be .inc, pbp, bas, bak.. whatever.
For Win7/Vista, you may have a error message if the path+filename exceed 32 characters (or so)
All config fuses are in my code, never elsewhere/ I comment out the one in the PBP folder all the tie. Fortunately now with PBP3 we no longer need to do so. This reminds me I need to upgrade today... where<s my proof of purchase now... arg... I know I have it somewhere. Back in 1999/2000![]()
Last edited by mister_e; - 8th August 2011 at 19:29.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks