please dont rip this site
/*********************************************************************************************/
/* Program : MAIN.H */
/* Function : MAIN Header File */
/* Author : John F. Fitter B.E. */
/* */
/* Application specific stuff removed for web publishing. */
/* */
/* Copyright © 1998 Eagle Air Australia Pty. Ltd. All rights reserved */
/*********************************************************************************************/
#ifndef _MAIN_H
#define _MAIN_H
/*********************************************************************************************/
/* Project specific defines
/*********************************************************************************************/ /*********************************************************************************************/
//#define _DEVELOPMENT // development on emulator - defined in main.cmd
// emulator speed is limited to 8MHz
#define _HVER 1 // hardware version number (0..15)
#define _HREV 0 // hardware revision number (0..15)
#define _SVER 1 // software version number (0..15)
#define _SREV 3 // software revision number (0..15)
/*********************************************************************************************/
/* Processor speed defines
/*********************************************************************************************/ /*********************************************************************************************/
#ifdef _DEVELOPMENT // for software development only
#define _CLOCK_ 8000000L // development uses 8MHz xtal
#else
#define _CLOCK_ 16000000L // production units use 16MHz xtal
#define _FAST_CLOCK
#endif // _DEVELOPMENT
#define _MCLK _CLOCK_/4000000L // cycles per microsecond
/*********************************************************************************************/
/* Macros */
/*********************************************************************************************/
// Printing macros
#define print_to_printer() c_status.prt_to_lcd = false
#define print_to_lcd() c_status.prt_to_lcd = true
// All this defined for the HiTech compiler only - so this header file
// can be used by Borland C
#ifdef HI_TECH_C
/*********************************************************************************************/
/* Controller status defines
/*********************************************************************************************/ /*********************************************************************************************/
struct ctr_status {
unsigned alternate :1;  // interface alternate flag
unsigned yield :1;  // flag to yield control to system functions
unsigned exp100ms :1;  // flag that 100ms has expired
unsigned sleep_en :1;  // enable sleep mode flag
unsigned awake :1;  // controller is awake
unsigned to_wait :1;  // timed out waiting to time
unsigned to_time :1;  // timed out timing
unsigned to_load :1;  // timed out loading (motor load only)
unsigned mtr_slow :1;  // flag that the motor should be running slow
unsigned prt_to_lcd :1;  // print destination flag - printer/lcd
unsigned serial_exists :1;  // serial device is attached
unsigned char_is_in :1;  // serial character has been received
unsigned ser_rx_err :1;  // UART receive error status
unsigned new_tstate :1;  // new controller timing state flag
unsigned new_istate :1;  // new controller interface state flag
unsigned new_field :1;  // new controller interface field flag
unsigned new_result :1;  // new timing result flag
unsigned en_timing :1;  // enable timing flag
unsigned tare :1;  // tare flag - enables measurement
unsigned accepted :1;  // accepted flag - for new values
unsigned accept_dlg :1;  // accept dialog is active flag
unsigned captured :1;  // flag to indicate a time has been captured by CCP
unsigned validresult :1;  // flag to indicate a valid final timing result
unsigned printvalid :1;  // flag to enable printing of valid/invalid string
unsigned autotimeout :1;  // flag auto timeout has just occurred
unsigned allowtimeout :1;  // flag to allow timing state timeout
unsigned islogged :1;  // current measurement is logged
unsigned gotaresult :1;  // flag that there is a result - only set, never reset
unsigned ext_key :1;  // external simulated keypress (from the PC)
};
union tval_union{
struct {
unsigned int lw_tval;
unsigned int hw_tval;
} wtval;
unsigned long ltval;
};
/*********************************************************************************************/
/* Variable and constant declarations
/*********************************************************************************************/ /*********************************************************************************************/
#ifdef _MAIN_C
unsigned char lin;
unsigned char pos;
unsigned char csr;
unsigned long unique;  // copy of unique reference number
unsigned char ser_data;  // serial input data
bank1 volatile unsigned char tmr_10ms;  // 10ms timer
bank1 volatile unsigned char tmr_100ms;  // 100ms timer
bank1 unsigned char sertimeout;  // serial timeout (x10ms)
bank1 volatile unsigned char ser_char;  // received serial character
bank1 union tval_union tmr_val;  // captured value of tmr1 & tmr1_aux
bank1 unsigned int tmr_aux;  // timer 1 bits 16 to 31
bank2 unsigned char tmr_1s;  // 1 second timer
bank2 unsigned char tmr_100mm;  // 6 second timer
bank2 unsigned char sleep_elaps;  // sleep elapsed time (x100mm) - milliminutes !!!
bank2 unsigned char motor_time;  // motor run timer (x100ms)
bank2 unsigned char motor_dc;  // motor on-time at slow speed (ms/50ms)
bank2 unsigned char slow_timer;  // timer for motor slow speed
bank2 unsigned char state_time;  // state timeout timer (x100ms)
bank2 unsigned char auto_time;  // auto-timeout timer (x100ms)
bank2 unsigned char old_sw;  // saved optical switch states
bank2 unsigned char xl_super2;  // translated superscript 2 for printer
#else
extern unsigned char lin;
extern unsigned char pos;
extern unsigned char csr;
extern unsigned long unique;
extern unsigned char ser_data;
extern bank1 volatile unsigned char tmr_10ms;
extern bank1 volatile unsigned char tmr_100ms;
extern bank1 unsigned char sertimeout;
extern bank1 volatile unsigned char ser_char;
extern bank1 union tval_union tmr_val;
extern bank1 unsigned int tmr_aux;
extern bank2 unsigned char tmr_1s;
extern bank2 unsigned char tmr_100mm;
extern bank2 unsigned char sleep_elaps;
extern bank2 unsigned char motor_time;
extern bank2 unsigned char motor_dc;
extern bank2 unsigned char slow_timer;
extern bank2 unsigned char state_time;
extern bank2 unsigned char auto_time;
extern bank2 unsigned char old_sw;
extern bank2 unsigned char xl_super2;
#endif // _MAIN_C
/*********************************************************************************************/
// Function prototypes
/*********************************************************************************************/
void init_proc();
void goto_sleep(unsigned char);
unsigned char dec_to_bcd(unsigned char);
unsigned char bcd_to_dec(unsigned char);


void put_bcd(unsigned char);
void yield();
void reset_proc(unsigned char);
signed char int_log10(double);
double pow10(signed char);
void start_motor();

#endif // HI_TECH_C
#endif // _MAIN_H

// ***** EOF MAIN.H *****



file: /Techref/microchip/language/C/moi_h.htm, 7KB, , updated: 2008/4/18 06:03, local time: 2024/11/23 12:26,
TOP NEW HELP FIND: 
18.117.105.215:LOG IN

 ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF="http://massmind.org/techref/microchip/language/C/moi_h.htm"> microchip language C moi_h</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.


Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

 

Welcome to massmind.org!

 

Welcome to massmind.org!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  .