Go to Post Baker, you certainly are a trouble maker. :) - Rich Kressly [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #6   Spotlight this post!  
Unread 24-02-2007, 11:21
Mark McLeod's Avatar
Mark McLeod Mark McLeod is offline
Just Itinerant
AKA: Hey dad...Father...MARK
FRC #0358 (Robotic Eagles)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2002
Location: Hauppauge, Long Island, NY
Posts: 8,825
Mark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond repute
Re: Real time clocks, out of the question?

Timers are simple to use, no soldering required.
IFI has a white paper on coding timers that goes into the bits and bytes of it all:
http://www.ifirobotics.com/docs/time...004-jan-14.pdf

For a description of the timer library calls see the MPLAB-C18-Libraries.pdf manual under C:\mcc18\doc.

Here's a sample using the timer libraries:
Code:
// In user_routines.c
#include <timers.h>
#define CLOCKOFFSET 60535  //Set timer for 4ms
  // Maximum for 16-bit timer 65535 - 5000 (4ms) = 60535
 
/* Use Timer3 (16-bits) to control our clock */
/* timer set to 4 ms */
 
// Call from User_Initialization()
  OpenTimer3(TIMER_INT_ON &
             T3_16BIT_RW &
             T3_SOURCE_INT &
             T3_PS_1_8
             );
 
  WriteTimer3(CLOCKOFFSET);  /* Preload timer to overflow after 4ms */
Code:
  // In user_routines_fast.c
  #include <timers.h>
  // globals declared as extern wherever else they are used
  volatile unsigned long Clockms=0; // 1 millisecond clock
  volatile unsigned int Clockds=0; // 1/10 second
  volatile unsigned int Clocksec=0; // 1 second clock
  //etc.
 
 
// In InterruptHandlerLow()
  if (PIR2bits.TMR3IF) /* TIMER 3 INTERRUPT */
  {
    /** This provides us with a clock for timing events **/
    PIR2bits.TMR3IF = 0; /* Clear Timer interrupt flag */
    WriteTimer3(CLOCKOFFSET);  /* Reset Timer to overflow in 4ms */
    Clockms += 4; /* milliseconds */
    Clockds = Clockms / 100;
    Clocksec = Clockms / 1000;
    // etc.
  }
__________________
"Rationality is our distinguishing characteristic - it's what sets us apart from the beasts." - Aristotle

Last edited by Mark McLeod : 24-02-2007 at 12:17.
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Networkable real-time game simulation for 'Aim High'! test it out now Bongle General Forum 11 19-03-2006 23:10
Real time photos from the buckeye regional Greg Needel Regional Competitions 4 25-03-2004 12:46
Robot motion after the time has run out. Randy Ai Rules/Strategy 1 06-01-2003 17:17
Real Time Scoring archiver 2000 2 24-06-2002 00:09
real time chat SharkBite CD Forum Support 4 07-02-2002 21:22


All times are GMT -5. The time now is 11:06.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi