Subject:
Re: [gnupic] How do I set configuration bits for 18f252 in gpasm?
From:
David Froseth ####@####.####
Date:
9 Jun 2006 06:03:07 +0100
Message-Id: <448900FD.6040300@umich.edu>
George,
Thanks to you, I found my include files at:
/sw/share/gputils/header/p18f252.inc
Since I am on a Mac, I am using Fink, which puts everything in '/sw'.
Gpasm's use of __CONFIG and the RETFIE FAST command are now working
perfectly.
Thanks again!
George M. Gallant, Jr. wrote:
> David,
>
> FAST is defined on my system
> in /usr/local/share/gputils/header/p18f252.inc. As the file
> is not stock gputils and the years have not been kind to my little gray
> cells, I don't know
> if this is supplied by the gputils team or not.
>
> George
>
> On Thu, 2006-06-08 at 16:48 -0400, David Froseth wrote:
>
>
>>Thanks George for the reply. In the gputils documentation, I could not
>>find anything about how to do a settup like you have. Am I missing an
>>include file? Maybe this is common knowledge.
>>
>>Here is what I did to get __config working. At least to me, it looks
>>like it is working. Here is some of the gpasm output:
>>
>> 00021 list p=18f252
>> 00022
>> 00300001 00023 _config1h equ 0x300001
>> 00300002 00024 _config2l equ 0x300002
>> 00300003 00025 _config2h equ 0x300003
>> 00300005 00026 _config3h equ 0x300005
>> 00300006 00027 _config4l equ 0x300006
>> 00028
>> 00029
>>300000 FAFF 00030 __config _config1h, b'11111010' ;HS
>>oscillator
>> 00031 __config _config2l, b'11111110'
>>;enable power-up timer
>>300002 FEFE 00032 __config _config2h, b'11111110'
>>;watchdog timer disabled
>>300004 FFFF 00033 __config _config3h, b'11111111' ;
>>300006 FFFB 00034 __config _config4l, b'11111011'
>>;Disable LVP
>> 00035
>>
>>The program address and the program data is where it should be. Since I
>>did not define a config1l at 0x300000, the assembler automatically
>>writes all 1's with the lower byte of the 0x300000 address being 'FF'.
>>0x300001 is 'FA' as it should be. So, it also seems that my original
>>numbers were wrong - unused bits should be written as '1', correct?
>>
>>I also fixed problems with the 'retfie FAST' instruction.
>>I was getting an error:
>>
>>Error [113] : Symbol not previously defined (FAST).
>>001C 0010 00183 retfie FAST
>>
>>In the PIC18FXX2 documentation (pg. 217) the retfie instruction word is
>>defined as - 0000 0000 0001 000s, where s=1, if you want certain
>>registers restored from shadow registers when returning from an
>>interrupt (pg. 214).
>>So I defined FAST as '1':
>>
>>FAST equ 0x01
>>
>>Now I get this output from gpasm:
>>
>>001C 0011 00183 retfie FAST
>> 00184
>>
>>
>>This seems right since the op-code word is now '0011'h, which equals
>>'0000 0000 0001 0001'. Do I have this right?
>>
>>One last question - Does the '&' symbol in '_OSCS_OFF_1H & _HS_OSC_1H'
>>cause gpasm to do an AND logic function on the two bits represented by
>>the mnemonics?
>>
>>Thanks.
>>
>>George M. Gallant, Jr. wrote:
>>
>>>gpasm does a fine job with the 18f252. Here is my current setup.
>>>
>>>George
>>>
>>>; __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
>>> __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
>>>
>>> __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L &
>>>_BORV_20_2L
>>> __CONFIG _CONFIG2H, _WDT_OFF_2H
>>>
>>> __CONFIG _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L &
>>>_STVR_ON_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, _WRTC_OFF_6H & _WRTB_OFF_6H &
>>>_WRTD_OFF_6H
>>>
>>> __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L
>>> __CONFIG _CONFIG7H, _EBTRB_OFF_7H
>>>
>>>
>>>
>>>
>>>On Thu, 2006-06-08 at 14:24 -0400, David Froseth wrote:
>>>
>>>
>>>
>>>>I would like to use gpasm to make a hex file for a 18f252 pic. However,
>>>>I am unsure of how to write the code, which sets up the configuration
>>>>bits. The 18f parts have several config files located in 0x300001 -
>>>>0x30000d of the program memory. How do I write my assembly program so
>>>>that gpasm knows what to do?
>>>>
>>>>I would like to have these values in the various config files:
>>>>
>>>>config1h = b'00100010'
>>>>config2l = b'00001110'
>>>>config2h = b'00001110'
>>>>config3h = b'00000001'
>>>>config4l = b'10000001'
>>>>
>>>>Thanks for any advice.
>>>>
>>>>p.s. Does gpasm support all of the additional instructions of the
>>>>enhanced 18f parts - i.e. bra, movlb, movff, etc?
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: ####@####.####
>>>>For additional commands, e-mail: ####@####.####
>>>>
>>>
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ####@####.####
>>For additional commands, e-mail: ####@####.####
>>
>
>