平车主控板(运维板)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

378 lines
11 KiB

5 years ago
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2017, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file hard_config.h
/// @brief hard config include
/// @info FILE FOR HARDWARE SETUP AND SOFTWARE SETUP///FOR EXAMPLE: BAORD ,MCU,IDE
/// @info YOU CAN CHANGE OR ADD THE DEFINE IF YOU NEED
/// @info 整个嵌入式项目的入口 首先是确认电路板 然后确认cpu 芯片型号 然后确认编译器 之后是软件框架 最后是应用程序
/// @info bsp_CONFIG 为其他头文件的始祖 TYPE_BOARD_xx
///-------------------------------------------------------------------------
/// @version 1.1
/// @author CC
/// @date 20180308
/// @note
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#ifndef _BSP_CONFIG_H
#define _BSP_CONFIG_H
#include <INTRINS.H>
#include "../clib/Type.h"
#include "../clib/bit.h"
#include "../tpc/tpc_modbus.h"
#include "../tpc/tpc_ccmodbus.h"
//#include "../tpc/tpc_uart.h"
5 years ago
#include "../tpc/tpc_0d0a.h"
//#define D_iic_inspect
#define D_open_save_f
//>>>>>>>>>>>>>>>>>>>>>>.BORAD TYPE
#define TYPE_BOARD_hhnew 16
#define TYPE_BOARD_st_sleep04_01 4
#define TYPE_BOARD_st_sleep03 5
#define TYPE_BOARD_SMMM_MB_VH032_0E 6
#define TYPE_BOARD_LPC17xx_ 8
#define TYPE_BOARD_STM32F_103ZET6_READBULL 1036
#define TYPE_BOARD_hh_CC_MD_VH05_anyriny_simple_m51 0x0551
#define TYPE_BOARD_hh_CC_MD_VH06_asMain_m6a7 0x6a7
#define TYPE_BOARD_TI26_MT01_M178 0x178 //会议计时器版v TI26_MT01-M178
#define TYPE_BOARD_stc5as32_WIFIBV01 532
#define TYPE_BOARD_SHC16LAXXQN32 1632 //SHC16LAXXQN32
#define TYPE_BOARD_PAPER6133_M0A6 0xa6 //打印机纸张传感
#define TYPE_BOARD_GSM_MAIN_V07 0xa7 //打印机运维板
//STEP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<.BORAD TYPE end
// BORAD,
// MCU:SHC6601
// IDE :KEIL
//>>>>>>>>>>>>>>>>>>>>>>mcu TYPE
#define TYPE_MCU_SHC6601 66
#define TYPE_MCU_STC 51
#define TYPE_MCU_LPC17xx 3217
#define TYPE_MCU_STM32 3232
#define D_CPUfamily_8bits 8
#define D_CPUfamily_16bits 16
#define D_CPUfamily_32bits 32
//<<<<<<<<<<<<<<<<<<<<<<mcu TYPE end
//>>>>>>>>>>>>>>>>>>>>>>IDE TYPE
#define TYPE_IDE_KEIL 1
#define TYPE_IDE_MDK 2
#define TYPE_IDE_IAR 3
//<<<<<<<<<<<<<<<<<<<<<<IDE TYPE end
//>>>>>>>>>>>>>>>>>>>>>>G-SENSOR TYPE
#define TYPE_ASENSOR_ADXL362 362
#define TYPE_ASENSOR_MSA300 362
#define TYPE_ASENSOR TYPE_ASENSOR_MSA300
//<<<<<<<<<<<<<<<<<<<<<<G-SENSOR TYPE end
//STEP 1 TYPE_UASER_BOARD SELECT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define TYPE_UASER_BOARD TYPE_BOARD_GSM_MAIN_V07 //打印机运维板
//#define TYPE_UASER_BOARD TYPE_BOARD_PAPER6133_M0A6 //会议计时器版v TI26_MT01-M178
//#define TYPE_UASER_BOARD TYPE_BOARD_SMMM_MB_VH032_0E
//#define TYPE_UASER_BOARD TYPE_BOARD_stc90c516rd
//#define TYPE_UASER_BOARD TYPE_BOARD_hh_CC_MD_VH06_asMain_m6a7
//#define TYPE_UASER_BOARD TYPE_BOARD_stc5as32_WIFIBV01
//#define TYPE_UASER_BOARD TYPE_BOARD_hhnew
//STEP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//STEP 2 TYPE_UASER_BOARD CONFIG >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#if(TYPE_UASER_BOARD == TYPE_BOARD_GSM_MAIN_V07)
#define TYPE_MCU TYPE_MCU_STC
#define TYPE_IDE TYPE_IDE_KEIL
#include <stdio.h>
#include <string.h>
#include <intrins.h>
#include "../cpu/STC_stc8a8k.h"
#include "../cpu/c51_macro.h"
#define D_CPUfamily_type D_CPUfamily_8bits
#define BRT_115200 115200
#define BRT_9600 9600
#define D_uart0_BRT BRT_115200
#define MainFre_5M 0
#define MainFre_11M 1
#define MainFre_22M 2
#define MainFre_27M 3
//#define D_sys_MainFre MainFre_16M2
#define D_sys_MainFre MainFre_11M
#if(MainFre_5M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif(MainFre_22M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif(MainFre_27M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#else ///MainFre_11M
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#endif//D_sys_MainFre)
#elif(TYPE_UASER_BOARD == TYPE_BOARD_PAPER6133_M0A6)
#define TYPE_MCU TYPE_MCU_STC
#define TYPE_IDE TYPE_IDE_KEIL
#include <stdio.h>
#include <string.h>
#include <intrins.h>
#include "../cpu/STC_stc8a8k.h"
#include "../cpu/c51_macro.h"
#define D_CPUfamily_type D_CPUfamily_8bits
#define BRT_115200 115200
#define BRT_9600 9600
#define D_uart0_BRT BRT_115200
#define MainFre_5M 0
#define MainFre_11M 1
#define MainFre_22M 2
#define MainFre_27M 3
//#define D_sys_MainFre MainFre_16M2
#define D_sys_MainFre MainFre_11M
#if(MainFre_5M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif(MainFre_22M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif(MainFre_27M == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#else ///MainFre_11M
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#endif//D_sys_MainFre)
#elif(TYPE_UASER_BOARD == TYPE_BOARD_TI26_MT01_M178)
#define TYPE_MCU TYPE_MCU_STC
#define TYPE_IDE TYPE_IDE_KEIL
#include <stdio.h>
#include <string.h>
#include "../cpu/STC_stc8a8k.h"
#define D_CPUfamily_type D_CPUfamily_8bits
#elif(TYPE_UASER_BOARD == TYPE_BOARD_SMMM_MB_VH032_0E)
//Fix Me.
#elif(TYPE_UASER_BOARD == TYPE_BOARD_hh_CC_MD_VH06_asMain_m6a7)
#define TYPE_MCU TYPE_MCU_SHC6601
#define TYPE_IDE TYPE_IDE_KEIL
//typedef unsigned char type_comm;//通用类型的变量,取决于编译器和cpu的位数和系统的堆栈优化等
#include <stdio.h>
#include <string.h>
#include <intrins.h>
#define NOP() _nop_()
#define D_CPUfamily_type D_CPUfamily_8bits
typedef unsigned char type_comm;
#ifdef D_debug_sim
#define D_sim_uart
#define D_sim_timer0
#endif
//---------------------------------------------------
#define MainFre_2M2 0
#define MainFre_4M2 1
#define MainFre_8M2 2
#define MainFre_16M2 3
///#define D_sys_MainFre MainFre_16M2
#define D_sys_MainFre MainFre_4M2
///#define D_sys_MainFre MainFre_2M2
/// send+10000 = 100ms 10==1ms 1=200us
#if(MainFre_16M2 == D_sys_MainFre)
#define D_Cdelay_200us 9 //20us 20us*250 = 5000us 5ms
#define D_Cdelay_1us 1 ////while p21翻转时测定 1.74M 0.5us 一个指令
#elif (MainFre_8M2 == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif (MainFre_4M2 == D_sys_MainFre)
#define D_Cdelay_200us 20
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#elif (MainFre_2M2 == D_sys_MainFre)
#define D_Cdelay_200us 40
#define D_Cdelay_1us 1 ////while p21翻转时测定 500k 2us 一个指令
#endif
#define D_Tdelay_100ms (10)
#define D_Tdelay_200ms (20)
#define D_Tdelay_400ms (65534)
#define D_Cdelay_400us (2*D_Cdelay_200us+3)
#define D_Cdelay_1ms (5*D_Cdelay_200us)
#define D_Cdelay_1ms2 (6*D_Cdelay_200us+7+1)
#define D_Cdelay_5ms (254+16)
/// 对应task中的n v 最大值255
//// 如果main循环耗时 20us 那么//20us 20us*250 = 5000us 5ms
//---------------------------------------------------
#include "../cpu/SHC16L.h"
#include "../cpu/shc16l_macro.h"
//SADEN1 串口从 机地址
//---------------------------------------------------
#define gReg_user2 SADEN1
#define gRegU_SO SADDR
#define gRegU_AppFlag CCAP0L // io口状态位
#define gRegU_iic_wr CCAP1L // iic 读写状态位
#define gRegU_iic_return CCAP2L ///// i2c模块任务调度状态,判定i2c模块是否空闲的标志
#define gRegU_CWreg CCAP3L
#define gRegU_SO3 CCAP3L
#define D_AppFlag_CWInt BITN0 /// CW 的中断app标志 区别于中断标志,一般用于保存中断标志
/// 因为中断标志大部分会在中断中自动或者程序清除,应用程序中看不到了
#define D_AppFlag_HotReset BITN1 /// 热启动的标志位
#define L2_AppFlag_init() gRegU_AppFlag = 0;
//---------------------------------------------------
///L2_AppFlag_CWInt_is(D_AppFlag_CWInt)
#define L2_AppFlag_CWInt_is(BITNx) BITN_G(gRegU_AppFlag, (BITNx))
#define L2_AppFlag_CWInt_set(BITNx) BITN_1(gRegU_AppFlag,(BITNx))
#define L2_AppFlag_CWInt_clear(BITNx) BITN_0(gRegU_AppFlag,(BITNx))
//---------------------------------------------------
#ifdef daosdifjasodfij
SHC16LAXXQN32
P30 SENSINT2 Gsensor.INT1
P31 SENSINT3 Gsensor.INT2
P21 buz
p20 PW_PG
P07 MOTO
P04 PW_IRQ
P51 txd
P50 rxd
P07 BAT_CAL
P06 BAT_CAL_EN
P05 VCIN0
P04 PW_IRQ
P27 LED1
P26 LED12
P25 LED82
P24 LED8
P23 LED5
P22 LED51
P10 SCL
p11 SDA
typedef enum MainFreSelect
{
MainFre_2M,
MainFre_4M,
MainFre_8M,
MainFre_16M,
MainFre_Max
}MainFreSelect;
#endif
#define D_MainFre 1 //MainFre_4M
typedef U16 UN_TYPE;
#elif(TYPE_UASER_BOARD == TYPE_BOARD_hhnew)
#include "../cpu/SHC16L_macro.h"
#define TYPE_MCU TYPE_MCU_SHC6601
#define TYPE_IDE TYPE_IDE_KEIL
typedef unsigned short type_comm;//通用类型的变量,取决于编译器和cpu的位数和系统的堆栈优化等
#elif(TYPE_UASER_BOARD == TYPE_BOARD_LPC17xx_)
#define TYPE_MCU TYPE_MCU_LPC17xx
#define TYPE_IDE TYPE_IDE_MDK
// typedef unsigned int type_comm;//通用类型的变量,取决于编译器和cpu的位数和系统的堆栈优化等
#include "lpc17xxcc.h"
#include "lpc17xxzlg.h"
#include "lpc17xx_macro.h"
#include "target_cfg.h"
#elif(TYPE_UASER_BOARD == TYPE_BOARD_STM32F_103ZET6_READBULL)
#define TYPE_MCU TYPE_MCU_STM32
#define TYPE_IDE TYPE_IDE_MDK
// typedef unsigned int type_comm;//通用类型的变量,取决于编译器和cpu的位数和系统的堆栈优化等
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32_macro.h"
#endif //TYPE_UASER_BOARD == TYPE_BOARD_GSM_MAIN_V07
//externs
struct _s_sysclk
{
U32 m;
U32 clk;
U32 out;
};
extern struct _s_sysclk s_sysclk;
extern void L0_pin_config(void);
extern void L1_uart_tpc_config(void);
extern void L1_bsp_pwm_set(U16 val_H,U16 val_L);
extern void L1_bsp_pwm_init(void);
extern void L0_cpu_init(void);
extern void L0_MCLKO_init(void);
extern void L3_pwm_fun(U8 *pPara);
extern void L0_led2_set(unsigned char onf);
//---------- 串口协议配置---------------
//#include "../tpc/tpc_modbus.h"
#define D_s_uart0_rec_close(); s_uart0_rec.ok = 2;// 关闭串口协议解析
#define D_s_uart0_rec_open(); s_uart0_rec.ok = 0;// 关闭串口协议解析
extern void (*Lp0_uart0_fun)(unsigned char sbufreg);
extern void (*Lp0_uart2_fun)(unsigned char sbufreg);
extern void (*Lp0_uart3_fun)(unsigned char sbufreg);
extern void (*Lp0_uart4_fun)(unsigned char sbufreg);
extern TS_Handle_PH3 s_uart0_rec;
extern TS_Handle_PH4 s_uart2_rec;
extern TS_Handle_PH3 s_uart3_rec;
extern TS_Handle_0d0a s_uart4_at_rec;
extern TS_Handle_PH3 s_uart4_tcp_rec;
extern void L1_bsp_uart_config(void);
#endif//_BSP_CONFIG_H
/*********************************end file*********************************************/