📄 global.h
字号:
// *********************************************************************************** //
//
// Filename : global.h
// Title : TowerBuilder Main Header File
// Author : Fung Tin Ching
// Created Date : 2007.11.27
// Revisited Date : 2008.01.16
// Description : This header file is the Main Header File of the TowerBuiler Project.
// All Global Declaration should be placed at here
// Version : 1.2
//
// Copyright (c) 2008, All rights reserved.
// *********************************************************************************** //
#ifndef __GLOBAL_H__
#define __GLOBAL_H__
// ================================================================================================================= //
// ========================= Macro Function ========================= //
// ================================================================================================================= //
#define high_byte(cnt_16bit) (u08)(cnt_16bit>>8)
#define low_byte(cnt_16bit) (u08)(cnt_16bit)
// ================================================================================================================= //
// ========================= Included Files ========================= //
// ================================================================================================================= //
// ================================================================================================================= //
// ========================= Global Variables ========================= //
// ================================================================================================================= //
// Main.c
// --------
extern xdata u08 lcd_sen1[17];
extern xdata u08 lcd_sen2[17];
extern u08* lcd_line1;
extern u08* lcd_line2;
// TaskScheduler.c
// --------
extern volatile bit Flag_task_scheduler_enable;
// pca.c
// --------
extern volatile u16 wheelCountLeft;
extern volatile u16 wheelCountRight;
// databus.c
// --------
extern bit KEY_1;
extern bit KEY_2;
extern bit flashing_LED;
extern volatile u08 sensor_front_ledon;
extern volatile u08 sensor_front_ledoff;
extern volatile u08 sensor_back_ledon;
extern volatile u08 sensor_back_ledoff;
extern volatile u08 sensor_side;
// ================================================================================================================= //
// ========================= Constant Define ========================= //
// ================================================================================================================= //
// timer.c
// --------
#ifndef F_CPU
#define F_CPU 11059200
#endif
// motor.c
// --------
#define MOTOR_MODE
#define MOTOR_MODE_FORWARD 0
#define MOTOR_MODE_BACKWARD 1
#define MOTOR_MODE_BREAK 2
#define MOTOR_MODE_FREEWHEEL 3
// pca.c
// --------
#define PULSE_500US 0x01CC
#define PULSE_1MS 0x0399
#define PULSE_1_5MS 0x0566
#define PULSE_2MS 0x0733
#define PULSE_2_5MS 0x08FF
#define PULSE_20MS 0xB7FF
#define PCA_PERIOD PULSE_20MS
#define PWM1_DUTY 0x0770
#define PWM2_DUTY PULSE_1MS
#define PWM3_DUTY 0x0295
// ================================================================================================================= //
// ========================= Pin Configuration ========================= //
// ================================================================================================================= //
//--------------
// DATABus
#define DATABUS P0
//--------------
// AddressBus
// ** The THREE LSB bit (P2_0 ~ P2_2)
#define ADDRESSBUS P2
#define ADDRESS_NULL 0
//--------------
// Motor Control
#define MCOUNTL P1_6
#define MCOUNTR P1_7
#define MRD P3_2
#define MLD P3_3
#define ML1 P3_4
#define ML2 P3_5
#define MR1 P3_6
#define MR2 P3_7
//--------------
// LCD
#define LCD_ENABLE P1_2
#define LCD_RS P0_1
#define LCD_RW P0_0
//--------------
//F4LS138
#define ADD_D0 P2_0
#define ADD_D1 P2_1
#define ADD_D2 P2_2
// ADC0832
#define ADC_CSL P2_5
#define ADC_SCK P2_4
#define ADC_SDA P2_3
//--------------
// Ultrasonic
#define SCK P1_0
#define SDA P1_1
#define US_TRG SCK
#define US_ECHO SDA
//--------------
// Servo
#define PWM1 P1_3
#define PWM2 P1_4
#define PWM3 P1_5
//--------------
// Switch
#define KEY_1 P0_1
#define KEY_2 P0_0
//--------------
// IR Sensor
#define ADDRESS_FRONT 2
#define ADDRESS_BACK 3
#define ADDRESS_SIDE 4
#define FLOORSENSOR_TRG P2_6
//--------------
// Buzzer
#define BUZZER P2_7
// ================================================================================================================= //
// ========================= Function Prototype ========================= //
// ================================================================================================================= //
// TaskScheduler.c
// --------
void init_pca(void);
void init_timer2(void);
// motor.c
// ---------
void motor_ISR(void);
void logic_forward(void);
void init_motor(void);
void set_left_motor(u08 mode, u08 speed);
void set_right_motor(u08 mode, u08 speed);
// logic.c
// --------
void mainLogic(void);
// Databus.c
// --------
void setAddress(unsigned char num);
void updateSwitch(void);
void updateFloorSensor(void);
// pca.c
// --------
void setPWM1(u16 value);
void setPWM2(u16 value);
void setPWM3(u16 value);
//SWICTH
void key_on_off(u08 b)
{
if(b==1)
{
KEY_1=1;
KEY_2=1;
ADD_D0=1;
ADD_D1=0;
ADD_D2=0;
}
else if(b==0)
{
KEY_1=1;
KEY_2=1;
ADD_D0=0;
ADD_D1=0;
ADD_D2=0;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -