PDA

View Full Version : Trying to migrate to 18F..



Glenn
- 10th August 2009, 23:43
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 :(

Glenn
- 10th August 2009, 23:48
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.

mackrackit
- 11th August 2009, 00:28
Did you comment out the correct lines in the inc file?

Archangel
- 11th August 2009, 06:14
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.

mackrackit
- 11th August 2009, 06:48
Good point Joe.
So.....
http://www.picbasic.co.uk/forum/showthread.php?t=543

Glenn
- 11th August 2009, 16:19
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 ;)

mackrackit
- 11th August 2009, 16:37
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.

Glenn
- 6th February 2010, 16:40
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..



@ __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 ?

Glenn
- 6th February 2010, 16:41
..I can add that this is one of MANY MANY different config settings I have tried..

ScaleRobotics
- 6th February 2010, 17:14
@ __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:




; 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:

http://www.picbasic.co.uk/forum/attachment.php?attachmentid=3967&stc=1&d=1265477354

Acetronics2
- 6th February 2010, 17:45
Hi, Glenn

a '2520 config header, just for example.



'************************************************* ****************************
'************************************************* ****************************
'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

mark_s
- 6th February 2010, 18:56
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!

Archangel
- 6th February 2010, 19:03
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:


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

Glenn
- 6th February 2010, 19:22
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..

Glenn
- 6th February 2010, 19:24
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 :)

Glenn
- 6th February 2010, 19:30
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 ?



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.

Archangel
- 6th February 2010, 19:31
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

Archangel
- 6th February 2010, 19:33
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

Glenn
- 6th February 2010, 19:58
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.



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

Bruce
- 6th February 2010, 20:22
I don't have an 18F2520 to test this on, but give this a try;


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

Glenn
- 6th February 2010, 23:26
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.

Bruce
- 7th February 2010, 00:47
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.



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?

Glenn
- 7th February 2010, 00:55
I'm using 2.50b, and my include looks like:



;************************************************* ***************
;* 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 ;)

Glenn
- 7th February 2010, 01:01
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:



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

Glenn
- 7th February 2010, 01:11
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 :(

Bruce
- 7th February 2010, 01:12
It would really help to know which PIC you're compiling for, and which compiler you're
using....:o

Are you compiling for an 18F2550 or 18F2520?

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

Glenn
- 7th February 2010, 01:27
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.

Bruce
- 7th February 2010, 01:34
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...:o

Glenn
- 7th February 2010, 01:57
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:



;************************************************* ***************
;* 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:



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 :)

Glenn
- 9th February 2010, 23:25
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..