📄 headfiles.h
字号:
//Name:Headfiles.h
#include "p30f6012a.h"
#include "p30fxxxx.h"
#include "DataEEPROM.h"
#define _T1ON() {T1CON |= 0x8000;}
#define _T1OFF() {T1CON &= 0x7FFF;}
#define _T2ON() {T2CON |= 0x8000;}
#define _ADCON() {ADCON1 |= 0x8000;} //Enable A/D Converte
#define _ADCOFF() {ADCON1 &= 0x7FFF;} //Disable A/D Converte
#define _ADCSAMPSTART() {ADCON1 |= 0x0004;} //Start sample and conversion
#define _ADCSAMPOVER() {ADCON1 &= 0xFFFB;} //End sample
#define _SPION() {SPI1STAT |= 0x8000;} //Enable SPI
#define _SPIOFF() {while (!SPI1STATbits.SPIRBF); SPI1STAT &= 0x7FFF;} //Disable SPI
#define _DACSYNC_ENABLE() {_RF2 = 0;}
#define _DACSYNC_DISABLE() {_RF2 = 1;}
#define EEPROM_START_ADDR 0x7FF000
#define SYSTME_SERVO_CYCLE 0x099D //start value for Timer1 counter
//the basic digital 1 is approximately 0.065us, so...
//-----------------------Define the labels to decide which key is pressed
#define NON_KEY 0 //No key
#define UP_KEY 1 //'Up' key
#define DOWN_KEY 2 //'Down' key
#define LEFT_KEY 3 //'Left' key
#define RIGHT_KEY 4 //'Right' key
#define MENU_KEY 5 //'menu' key
#define ENTER_KEY 6 //'enter' key
//-----------------------Define the steps for keyboard scan
#define KEYBOARD_SCAN_START 0 //Scan starts
#define KEYBOARD_SCAN_DELAY_1 1 //Delay to avoid mechanical vibration
#define KEYBOARD_SCAN_GETKEY 2 //Read the value of scan
#define KEYBOARD_SCAN_DELAY_2 3 //Delay for acceleration
#define KEYBOARD_SCAN_SPDUP_1 4 //Acceleration one mode
#define KEYBOARD_SCAN_SPDUP_2 5 //Acceleration another mode
//-------------------------Define the labels for LCD display
#define MAIN_VIEW 0 //Main interface which is the first view
#define ENTER_ASK_VIEW 1 //Ask interface for saving data
#define ENTER_ANS_VIEW 2 //Result interface for saving completion
#define MENU_VIEW 3 //Menu interface
#define CONTROL_SET_VIEW 4 //Control parameter config interface
#define CHANNEL_1SET_VIEW 5 //Channel-one parameter config ...
#define CHANNEL_2SET_VIEW 6 //Channel-two para ...
#define SYSTEM_SET_VIEW 7 //System Para ...
#define SYSTEM_TEST_VIEW 8 //System test data interface for testing
#define SYSTEM_CHECK_VIEW 9
#define SYSTEM_ADJUST_VIEW 10
#define HISTORY_INFOR_VIEW 11
#define HELP_VIEW 12
//----------------------------Define the parameters of software filter
#define AD_FILTER_COUNT 4 //The volume of soft filter
#define AD_FILTER_POWERE_COEFFICIENT 2 //The math_power of the filter
//----------------------------Define condition compile
//Use the sentence "#define GLOBAL_VAR" for using the fllowing variables...
//as global ones in this headfiles; and do not use that sentence means...
//use the fllowing variables as external ones.
#ifdef GLOBAL_VAR
#define EXTERN_VAR
#else
#define EXTERN_VAR extern
#endif
//---------------------------Define Variables for all functions
EXTERN_VAR unsigned char Code[5][20], Code_Buffered[5][20];
EXTERN_VAR int P1_Cylinder[2], P2_Cylinder[2], L_Cylinder[2],
L_Set[2], I_Sevovalve[2];
EXTERN_VAR int P1_Cylinder_AD[2], P2_Cylinder_AD[2], L_Cylinder_AD[2],
I_Sevovalve_AD[2];
EXTERN_VAR int L_Cylinder_AD[2], L_Set_AD[2];
EXTERN_VAR int Offset[2][5], PID[2];
EXTERN_VAR unsigned int Output[2];
EXTERN_VAR int PID_Error_Sum[2], P_Force_Sum[2];
EXTERN_VAR int PID_Proportional[2], PID_Integral[2], PID_Derivative[2];
EXTERN_VAR int L_Filter[2][AD_FILTER_COUNT], P1_Filter[2][AD_FILTER_COUNT],
P2_Filter[2][AD_FILTER_COUNT];
EXTERN_VAR unsigned char Filter_Ptr;
EXTERN_VAR unsigned char Key_Value, Key_Buffer, Key_Counter, Key_Step;
EXTERN_VAR unsigned char Arrow_Position;
EXTERN_VAR unsigned char Interface;
EXTERN_VAR int Control_Parameter[26],
Channel_Parameter[2][6],
System_Parameter[6],
System_Zero_Point[2],
System_Parameter_Asic[11];
EXTERN_VAR unsigned char Refresh_LCD_Flag, Refresh_Key_Flag;
EXTERN_VAR unsigned int Refresh_LCD_Cycle, Refresh_Key_Cycle;
EXTERN_VAR unsigned int Frequency_PWM;
EXTERN_VAR unsigned char Function_Ctrl;
EXTERN_VAR unsigned int System_Zero_Flag;
EXTERN_VAR long int Temp_Lint;
EXTERN_VAR long int System_Delay;
EXTERN_VAR int P1_sample_recorder[2][3], P2_sample_recorder[2][3], L_sample_recorder[2][3];
//----------------------------------Illustrate the functions
//Sub-Functions in "ADCDAC.c" file
void ADC(void);
void DAC(void);
//Sub-Functions in "Assistant.c" file
void SPI_Data_Output(unsigned char send_data);
int Middle_Value(int first, int second, int third);
int Absolute_Value(int number);
void Zero_Study_Self(unsigned char channel, int input);
void Force_Study_Self(unsigned channel);
void Number_Display(unsigned char x, unsigned char y,
unsigned char num_total_digit,
unsigned char radix_ptr_digit,
int number);
void LCD_Arrow_Position(unsigned char value, unsigned char *y_arrow,
unsigned char arrow_min, unsigned char arrow_max);
void LCD_Arrow_Display(unsigned char y_arrow);
void Number_Indecrease_Asic(unsigned char key_value, int *parameter,
unsigned char max, unsigned char min);
void Number_Indecrease(unsigned char key_value, int *parameter,
int max, int min, int delt);
void Array_Ptr(unsigned char interface, unsigned char y_arrow,
unsigned char *array_ptr);
void Code_Inputs(unsigned char Code0[20], unsigned char Code1[20],
unsigned char Code2[20], unsigned char Code3[20],
unsigned char Code4[20]);
//Sub-Funcitons in "Flash.c" file
void EEPROM_Write(void);
void EEPROM_Read(void);
//Sub-Functions in "Init.c" file
void Hardware_Init(void);
void Software_Init(void);
//Sub-Functions in "Keyboard.c" file
void Key_Scan(unsigned char *buffer, unsigned char *counter,
unsigned char *step, unsigned char *key_value);
void Key_Treat(unsigned char key_value);
//Sub-Functions in "LCDDrive.c" &"LCDInterface.c" files
void LCD_Clear(void);
void LCD_Drive(void);
void LCD_Display(void);
//Sub-Functions in "PIDControl.c" & "PWM.c" files
void PID_Control(void);
void Tremble_Frequency(unsigned int frequency);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -