//////////////////////////////////////////////////////////////////////////// ///@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 #include "../clib/Type.h" #include "../clib/bit.h" #include "../tpc/tpc_modbus.h" #include "../tpc/tpc_uart.h" #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 //<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>IDE TYPE #define TYPE_IDE_KEIL 1 #define TYPE_IDE_MDK 2 #define TYPE_IDE_IAR 3 //<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>G-SENSOR TYPE #define TYPE_ASENSOR_ADXL362 362 #define TYPE_ASENSOR_MSA300 362 #define TYPE_ASENSOR TYPE_ASENSOR_MSA300 //<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #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 #include #include #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 #include #include #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 #include #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 #include #include #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*********************************************/