CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Need help flashing an LED with PIC16F18323

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

Need help flashing an LED with PIC16F18323
PostPosted: Fri Oct 13, 2023 12:08 pm     Reply with quote

Code:

#include <16F18323.h>
#fuses NOWDT
#use delay(internal = 1MHZ)
void main(void)
{
 while(TRUE)
 {
  output_bit(PIN_C0, 0);
  delay_ms(500);
  output_bit(PIN_C0, 1);
  delay_ms(500);
 }
}

I can't get the RS232 to work properly so now trying an LED. Any ideas?
dyeatman



Joined: 06 Sep 2003
Posts: 1934
Location: Norman, OK

View user's profile Send private message

PostPosted: Fri Oct 13, 2023 12:25 pm     Reply with quote

You dont specify an oscillator type in the fuses so maybe the oscillator isn't running?
Code:

//////// Fuses: LP,XT,HS,NOEXTOSC,ECL,ECM,ECH,RSTOSC_HFINTRC_PLL
//////// Fuses: RSTOSC_EXT_PLL,RSTOSC_SOSC,RSTOSC_LFINTRC

_________________
Google and Forum Search are some of your best tools!!!!
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Fri Oct 13, 2023 12:29 pm     Reply with quote

Thank you. I thought the "internal" took care of that? Also, forgot to mention that the compiler is 5.116. It works fine on a 16F15223.
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Fri Oct 13, 2023 1:00 pm     Reply with quote

which programmer ? IE With MPLAB v8.xx, you have to set the 'build configuration' to 'release' NOT 'debug' before you compile your code.
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Fri Oct 13, 2023 1:03 pm     Reply with quote

Hello, I am using the ICD-U64.
Ttelmah



Joined: 11 Mar 2010
Posts: 19539

View user's profile Send private message

PostPosted: Sat Oct 14, 2023 7:10 am     Reply with quote

Take us through how your hardware is all setup and connected?.

I have just tested your RS232 program, and it works as posted, except
I connected both RX and TX pins (you really do need to do this, the RX
is always enabled, and if it is connected to an indeterminate state it can
result in the chip drawing more power and if you ever try to use interrupts
you can get spurious triggers).
I also had a pull-up on MCLR (your code as posted enables the MCLR
pin).
How is your supply generated?.
How are the connections made?.
How is the ICD connection made?.
What decoupling do you have, particularly adjacent to the chip?.
How is the RS232 connected?.
How is the LED connected?.

I wired a TTL output USB-RS232 converter directly to the TX pin, for
the RS232. Then tried this flash an LED code, and it too ran fine.
Had a 270R resistor feeding a red LED. Hopefully you _have_ got
a current limiting resistor on the LED connection, otherwise the chip
will reset when it tries to turn the LED on.

Code:

#include <16F18323.h>
#fuses PUT, NOWDT,NOMCLR //depending on how you have MCLR wired?
#use delay(INTERNAL=32MHZ)
#pin_select U1TX=PIN_C4
#pin_select U1EX=PIN_C5
#use rs232(UART1,baud=28800,parity=N,bits=8,errors,stream=VT)
void main(void)
{
   set_slow_slew_C(FALSE); //ensure slew rate limiting off
   fprintf(VT, "Hello World!!\r\n");
   while(TRUE)
   {
      fprintf(VT, "Hello World??\r\n");
      delay_ms(1000);
   }
}
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 12:36 pm     Reply with quote

Code:

#include <16F18323.h>
#fuses NOWDT
#use delay(internal = 1MHZ)
void main(void)
{
 output_bit(PIN_C1, 1);
 while(TRUE);
}


I can't even set this bit. It measures 0 on the voltmeter but works fine on the board with the 16F15223. It it possible to be able to program a PIC and the chip still be bad? The weird thing is that none of the boards with the '323 seem to work despite being able to program them. The reset pin is at 4.15v after programming. The board gets power from the programmer.

OK, it gets more weird. It works if I run the program with the debugger.
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 12:58 pm     Reply with quote

Code:

#include <16F18323.h>
#fuses NOWDT
#use delay(internal = 1MHZ)
void main(void)
{
 while(TRUE)
 {
  output_bit(PIN_C1, 0);
  delay_ms(500);
  output_bit(PIN_C1, 1);
  delay_ms(500);
 }
}


This program flashes the LED only if I run it in the debugger.
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 2:09 pm     Reply with quote

Maybe someone with an ICD-U64 can test and explain how to program the PIC but I suspect you've compiled the code in 'debug' mode and not 'release'.
I had similar problem until Microchip changed MPLAB so allow ME to choose the 'default' build configuration....when using the PICKit3.
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 3:39 pm     Reply with quote

I added the statement:
Code:

#device ICD=

and now it works. Also, I deleted the #device statement and it still works. Apparently, something got reset or happy. If anyone knows why this worked, I would be most grateful to know.
newguy



Joined: 24 Jun 2004
Posts: 1909

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 4:21 pm     Reply with quote

randy.shaffer wrote:
Also, I deleted the #device statement and it still works.


....Uh, it shouldn't work at all if you deleted the #device line.

Years ago, I ran into periodic compiler weirdness quite a bit, and in desperation I reinstalled the compiler. That fixed it, but in time, it would start to play up again.

Some time later, I started having obvious SSD issues. Turns out that my hard drive was failing and for some reason CCS was the 'canary in the coal mine.' Try reinstalling your compiler just to see if some of the weirdness goes away.
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Mon Oct 16, 2023 4:26 pm     Reply with quote

Thank you newguy, I will give that a try.
Ttelmah



Joined: 11 Mar 2010
Posts: 19539

View user's profile Send private message

PostPosted: Tue Oct 17, 2023 12:48 am     Reply with quote

Note my question about how the MCLR line is wired....
Note my using NOCLR.....

When you have the ICD connected it pulls up the MCLR line. If you don't
have this connected, the MCLR line needs a pull-up. Otherwise the chip
won't run unless you select NOMCLR.

If you are running in MPLAB, this _defaults_ to running in debug mode
unless you explicitly turn this off. I always have this off unless I want to
debug.
randy.shaffer



Joined: 21 Mar 2018
Posts: 51

View user's profile Send private message

PostPosted: Tue Oct 17, 2023 8:53 am     Reply with quote

Thank you, Ttelmah. The MCLR pin has a 10k pull-up. I am using the CCS IDE and the ICD-U64 programmer.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group