View previous topic :: View next topic |
Author |
Message |
matamicen
Joined: 31 Oct 2014 Posts: 7
|
PIC18F26j50 Example code |
Posted: Fri Oct 31, 2014 9:59 am |
|
|
Hi,
I would like to see an example code of a PIC18F26J50 running? could be a simple Titled LED ... Does anybody has one?
I need also the FUSES and specifying me if you are using an external crystal and the version of the CCS compiler.
I tried different version of the CCS compiler, with and without Ext Crystal and don't have succes!
Thanks!
Matt. |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Fri Oct 31, 2014 10:05 am |
|
|
Why don't you show us what you have code wise and and what configuration
you want then we can help you figure out where you went wrong? _________________ Google and Forum Search are some of your best tools!!!! |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Fri Oct 31, 2014 10:12 am |
|
|
Ok, good idea ...
I have an externa 12mhz OSC.
This is the code:
the "MAIN.H"
#include <18F26J50.h>
#FUSES NOWDT
#FUSES NODEBUG
#FUSES NOXINST
#FUSES NOPROTECT
#FUSES NOFCMEN
#FUSES NOIESO
#FUSES NOCPUDIV
#FUSES HSPLL
#FUSES PLL3
#FUSES RTCOSC_INT
#USE fixed_io(c_outputs = PIN_C0, PIN_C1)
#use delay(clock=48000000)
THE MAIN.C
#include <main.h>
#define LED PIN_C0
void main()
{
setup_adc(ADC_OFF); //disable ADC
setup_oscillator(OSC_PLL_ON);
set_tris_c(0xFF);
//Example blinking LED program
while(true){
output_high(LED);
delay_ms(1000);
output_low(LED);
delay_ms(1000);
}
} |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Fri Oct 31, 2014 10:20 am |
|
|
I deleted set_tris_c(0xFF); and add set_tris_c(0x00); and no success :( |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9246 Location: Greensville,Ontario
|
|
Posted: Fri Oct 31, 2014 11:15 am |
|
|
1) learn to use the 'code' button when posting code. It'll make it a LOT easier for us to debug, cut and paster, etc.
2) get rid of the use fixed_io() statement.Let the compiler handle the I/O. CCS makes it easy to do and until you're really,really good at coding and NEED a wee bit faster operation, fixed_io() is not necessary.
hth
jay |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Fri Oct 31, 2014 11:51 am |
|
|
This code works using the internal oscillator on the 25J50 which is the exact same chip with less memory.
Code: |
#include <18F25J50.h>
#FUSES INTRC_IO
#FUSES NOWDT
#FUSES NODEBUG
#FUSES NOXINST
#FUSES NOPROTECT
#FUSES NOFCMEN
#FUSES NOIESO
#FUSES NOCPUDIV
#use delay(internal=8000000)
#define LED PIN_C0
void main()
{
setup_adc(ADC_OFF); //disable ADC
//Example blinking LED program
while(true)
{
output_toggle(LED);
delay_ms(500);
}
}
|
_________________ Google and Forum Search are some of your best tools!!!! |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Fri Oct 31, 2014 2:33 pm |
|
|
Thanks dyeatman, I will try it.
By the way, Which compiler of CCS are using you with this code?
Thanks. |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Fri Oct 31, 2014 3:09 pm |
|
|
The latest PCWHD version 5.030 _________________ Google and Forum Search are some of your best tools!!!! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Fri Oct 31, 2014 3:51 pm |
|
|
Have been using the 26J50 for ages.
The following configuration has worked successfully for the last 30+ compiler versions for an almost identical setup:
Code: |
#include <18F26J50.h>
#device adc=10
#FUSES HSPLL, NOWDT, PLL3, NOXINST, NOCPUDIV, NOFCMEN, NOIESO, NOIOL1WAY
#use delay(clock=48MHz)
|
Originally compiled with 4.137, then 4.141, then 5.010, then 5.028. All worked the same. |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Fri Oct 31, 2014 9:48 pm |
|
|
Ttelmah thanks for your answer, with that fuses you use a 12mhz external Osc?
Matt |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Sat Nov 01, 2014 1:31 am |
|
|
Yes.
Remember that MCLR needs to be pulled up (these chips don't have a NOMCLR fuse).
Even if not using USB, you need the supply connection to Vusb, if you are going to use RC4/RC5. They say the pin can be left floating if you don't use these pins, but behaviour is then erratic, unless the pin has a decoupling capacitor on it.
Look carefully at your supply connections. If you are running from 3.3v, you need the capacitor on Vddcore. For USB operation, the easiest configuration is to use 3.3v as the main supply, which can then also feed Vusb, with two decoupling capacitors close to the pins, and then another decoupler on Vddcore. The decoupling on Vddcore is vital. I use a 10uF SMD ceramic capacitor right adjacent to the chip. |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Mon Nov 03, 2014 8:30 am |
|
|
Thanks guys! it's working, both examples are working.
The thing is the example with the 12Mhz OSC I changed the delay, I put 12MHZ instead of 48MHZ in de delay ... the blinking LED it was taking 4 seconds instead of one second.
The example without OSC, it's ok with the DELAY but in the pickit2 there is a warning message: "Warning: No Configuration words in hex file. In MPLAB use File-Export to save hex with config"
Do you know what is this message? This message don't appear in the example with the 12Mhz OSC.
Thanks!! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Mon Nov 03, 2014 10:19 am |
|
|
To run correctly at 12MHz, it sounds like HS is being selected, not HSPLL. With HS, the CPU will run 'off' the crystal directly, not from the PLL.
So, it sounds as if something is interfering with the configuration words coming from the compiler. You mention MPLAB for the first time.
Are you compiling 'inside' MPLAB?. If so, are you sure you have got 'release' selected, not 'debug'?. If debug is selected, MPLAB will override some of the fuses (shouldn't include the oscillator), to be compatible with debug operation. This might cause problems. Do you have the CCS IDE?. If so, what Object file format is selected?.
Have you got the latest firmware in the PicKit?. This exact behaviour is what you see if you are running firmware older than 2.32.00 |
|
|
matamicen
Joined: 31 Oct 2014 Posts: 7
|
|
Posted: Fri Nov 07, 2014 1:18 pm |
|
|
Ttelmah, now everything is working normally, I think it was a bad connection cause by myself
Thanks!! |
|
|
|