/*********************************************************************************************/ /* 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/20 07:31,
18.225.92.95: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? <A HREF="http://massmind.org/Techref/microchip/language/C/moi_h.htm"> microchip language C moi_h</A> |
Did you find what you needed? |
Welcome to massmind.org! |
Welcome to massmind.org! |
.