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.
377 lines
11 KiB
377 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_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
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<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*********************************************/
|
||
|
|
||
|
|