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 support@ccsinfo.com

#use delay is twice what it should be
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

#use delay is twice what it should be
PostPosted: Sat Dec 05, 2009 9:55 am     Reply with quote

The delay in this code should be 1/2 sec but is actually 1 sec
I have LEDs on B3, B2, B1, and B0 and simply count them up and down
Code:

/* Pre-processor directives */
#include <16F722.H>
#fuses INTRC, NOWDT, PUT, NOPROTECT
#use delay (clock=16000000)

/* The main function */
void main(void)
 {
// declare variables
   int count = 0;                     // counter

// initialize port directions
      set_tris_b(0b11100000);        // set Port B7-B5 inputs, B4-B0 outputs

// main loop
  while (1)                         // endless loop
  {
   while (count < 15)
    {
     output_b (count);        // display count 0 to 14
     delay_ms(500);           // wait half a second
     count++;                 // increment count to 15
    }
   while (count > 0)
    {
     output_b (count);        // display count 15 to 1
     delay_ms(500);           // wait half a second
     count--;                 // decrement count to 0
    }
  }                           // end of endless while loop
 }                            // end of main function
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 9:59 am     Reply with quote

Doesn't PIC16F722 have a 8 MHz internal oscillator as all other PIC16?
What made you specify a clock frequency of 16 MHz?
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 10:02 am     Reply with quote

The spec sheet says 16MHz
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 10:07 am     Reply with quote

It works correctly if I use 8 MHz, but the spec sheet says the internal RC with PLL enabled is 16 MHz
OK, so I read the fine print. The default at reset is 8 MHz.
So I added SETUP_OSCILLATOR (OSC_16MHZ); ahead of the main loop but it still does 1 second delays
How do I make the oscillator go at 16 MHz and why the 8 MHz default? Is 16 MHz pushing things?


Last edited by rovtech on Sat Dec 05, 2009 10:28 am; edited 1 time in total
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 10:27 am     Reply with quote

That's why I asked. I see, that the 16F722 has the capability of running at 16 MHz, but default OSCON is 8 MHz.
Apparently PCM doesn't understand the #use delay directive as a call to set it to 16 MHz...
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 10:31 am     Reply with quote

I should probably be replying instead of editing my post so I will copy here as a reply:
It works correctly if I use 8 MHz, but the spec sheet says the internal RC with PLL enabled is 16 MHz
OK, so I read the fine print. The default at reset is 8 MHz.
So I added SETUP_OSCILLATOR (OSC_16MHZ); ahead of the main loop but it still does 1 second delays
How do I make the oscillator go at 16 MHz and why the 8 MHz default? Is 16 MHz pushing things?
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 10:56 am     Reply with quote

I checked the code and found, that oscillator frequency is already set from #use delay, also setup_oscillator is working. What's your compiler version?
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 12:10 pm     Reply with quote

A new challenge: How do I find my version?
The PCMUPD.exe file is 4.11.26.13 which should be what is installed.
MPLAB is 8.33
These were recently installed.
dyeatman



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

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 12:23 pm     Reply with quote

Look at the top of your .LST file.
_________________
Google and Forum Search are some of your best tools!!!!


Last edited by dyeatman on Sat Dec 05, 2009 12:23 pm; edited 1 time in total
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 12:23 pm     Reply with quote

Your PCM version is 4.011. It doesn't handle PIC16F722 setup correctly. Even 4.084 doesn't. You have to set OSCON
manually. V4.011 most likely has other bugs, don't need to repeat what's been said in the forum all day.

Code:
#byte OSCCON = 0x90
//...
OSCCON = 0x30;
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 12:37 pm     Reply with quote

I searched the site for information on finding my version, or my purchase history but cannot find anything except looking at the top of .lst.
How do I look at the .LST file? When I tried to open it outside of CCS the computer hung.
I opened CCS on its own (I usually use the IDE in MPLAB) and found version 4.089. I was not aware of problems but will search them.
dyeatman



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

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 12:44 pm     Reply with quote

The .LST file is just a text file and can be opened with Notepad, Wordpad or similar.
_________________
Google and Forum Search are some of your best tools!!!!
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 12:47 pm     Reply with quote

Thanks to everyone, setting OSCON manually works.
I assumed it was me not the compiler.
I would still like to know how to check my version within MPLAB. It is not obvious.
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Sat Dec 05, 2009 12:57 pm     Reply with quote

V4.089 sounds much better, although the PIC16F772 support apparently isn't complete.

I wonder if you managed to disable *.lst file generation in your project somehow.
rovtech



Joined: 24 Sep 2006
Posts: 262

View user's profile Send private message AIM Address

PostPosted: Sat Dec 05, 2009 1:14 pm     Reply with quote

I never thought to open the .LST file in MPLAB. It is ver 4.089
The computer tried to open it in powerpoint and gave a freeze with black screen.
I would still like to know how to find my last purchase on the CCS site. The updates page says I can get it there but all I get is the billing page for another year of support.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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