DEFINE OSC too limited


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1
    mytekcontrols's Avatar
    mytekcontrols Guest

    Default DEFINE OSC too limited

    Code:
    DEFINE OSC 4
    This Define statement is suppose to synchronize most of PBP's time dependent functions (i.e.; pause and pauseus) to the oscillator feeding your PIC chip. Without the Define statement these functions assume you are running at 4 mhz. The problem is, that the choice of alternative oscillator speeds is limited to only 12 different speeds, which are: 3(3.58),4,8,10,12,16,20,24,25,32,33,40 mhz.

    Now I don't know about you, but for me this is too limiting. Example: it wouldn't be uncommon for someone to want to run their PIC at 14.318 mhz (NTSC) or for that matter 17.734 (PAL) since these are 4fsc standards used in video applications. It would be nice to have the Pause function still work properly at this speed, but it wont, since their is no Define for either of these frequencies.

    Not knowing what is going on underneath the cover of PBP, it would seem a relatively simple matter to allow for a much more flexible definition of oscillator speed that would accomodate a given users situation. Can the creators of PBP provide such a option?

  2. #2
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Of course the PAUSE works properly... you just need to make an adjustment with a little bit of math. So if you want to time 1 second with a DEFINE OSC of 16MHz and your 17.734MHz xtal, all you need is...

    16/17.734*1000

    Pause 902

    Think outside the box. The limits of PBP are your imagination.

  3. #3
    mytekcontrols's Avatar
    mytekcontrols Guest


    Did you find this post helpful? Yes | No

    Smile Too cryptic for me, but perhaps not for others

    Hi Melanie,
    Yes I understand that you can take the approach you just gave, but I tend to like things to mean what they say. If I have a statement that says "Pauseus 100" then I would like it to actually mean that I am taking a 100 microsecond pause. In this case we really aren't talking about "thinking outside of the box", but instead, about writing understandable code. Besides we aren't just talking about Pause routines here. There are 24 PBP functions that are all affected by incorrect oscillator selection.
    Code:
    COUNT, DEBUG, DEBUGIN,DTMFOUT,FREQOUT,HPWM,HSERIN,HSEROUT,
    I2CREAD,I2CWRITE,LCDOUT,OWIN,OWOUT,PAUSE,PAUSEUS,
    SERIN,SERIN2,SEROUT,SEROUT2,SHIFTIN,SHIFTOUT,
    SOUND,XIN, and XOUT
    I would hate to come back later, and try to debug even my own code, not say someone elses, if I used the method you suggested. Especially if a variety of the functions mentioned above were sprinkled throughout.

    Don't get me wrong, I like PBP, and really appreciate the effort that had to be put into making it what it is today. However this is a "Wish List" and my wish is to see a better way to do the Oscillator Define, so that all functions utilizing timing in their makeup continue to do what they say, and to mean what they mean. Is this asking too much? Or am I developing a case of OCD?

  4. #4
    Join Date
    Jul 2005
    Posts
    65


    Did you find this post helpful? Yes | No

    Smile

    Hello mytekcontrols

    In deed, you are absolutely right.

  5. #5
    breogan's Avatar
    breogan Guest


    Did you find this post helpful? Yes | No

    Default Problems with OSC.

    Hi,
    I'm trying to use 20MHz oscillator with PIC16C74A, for example, I have written this program to make blink a led for 1 second, but it doesn't work, the frequency is not 1Hz (it is more slow):

    '********** Definitions **********
    DEFINE OSC 20

    '********** Main prog **********
    Main:
    high PORTA.0
    pause 500
    low PORTA.0
    pause 500
    goto Main

    End

    '***************************************

    I'm using the David Tait programmer (home made) with the PIC74.EXE program (PIC16C74 Programmer Version 1.0b Copyright (C) 1996 Paul Vollebregt.) With the options "-hp8" (HS osc), also I have triyed with "-xp8" (XT osc).

    Thanks !
    Last edited by breogan; - 21st November 2005 at 11:06.

  6. #6
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Of course it'll be slower...

    Lets assume that Pause 500 is a perfect 500mS (which is unlikely but probably close). Your HIGH and your LOW and your GOTO all take up time too which has to be taken into account. Finally, how accurate is your Oscillator? 20.00000MHz or is it a few percent high or low?

    You want exactly 1Hz... go grab an oscillocope and trim it... now you have control in 1uS steps... but you add any other code or you nudge your room thermostat a little, and bang goes your timing!

    Main:
    high PORTA.0
    pause 499
    pauseus 1000
    low PORTA.0
    pause 499
    pauseus 1000
    goto Main

  7. #7
    Join Date
    Feb 2012
    Location
    PERTH AUSTRALIA
    Posts
    838


    Did you find this post helpful? Yes | No

    Default Re: DEFINE OSC too limited

    i have to aggree that the OSC define is very limiting and also makes for harder reading of code later on

    i needed 1mhz setting , but there i no such setting , have to use 4mhz , which is fine , but it means all the code that has any pauses pauseus , are not correct and these routines have been used in other chips and now need to be changed just to suit this cpu setting.

    not happy

    it makes for servicing the software harder later down the road, and inconsitancies when the code is transported


    not good

Similar Threads

  1. RF Modules
    By tonyfelloni in forum mel PIC BASIC Pro
    Replies: 44
    Last Post: - 26th June 2010, 17:42
  2. PIC16F877A analog problem
    By DeViLa_Q8 in forum mel PIC BASIC
    Replies: 0
    Last Post: - 30th July 2009, 20:19
  3. RX TX modules - intermitent communication
    By ruijc in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 11th June 2009, 00:13
  4. PIC HSERIN problem
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 20th July 2008, 11:08
  5. Replies: 8
    Last Post: - 17th September 2006, 17:46

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts