MC9S12XS128硬件底层驱动_os_cfg.h(底层配置文件)

/************************************************************************** SYSU-ROBOT-2011 SYSU-LXIONGH VERSION 1.0 LAST UPDATE: 2011年03月19日 ------------------------------------------------------------------------- Code Warrior 5.0 Target : MC9S12XS128 Crystal: 16.000Mhz ------------------------------------------------------------------------- Notice: 在标注@@@@@@@@与#########之间的信息是需要配置的 其他的内容不能修改,否则会产生不必要的错误. **************************************************************************/ //======================================================================= //Last Updated:2011.03.19 // 增加的功能: // 1. 普通IO口的控制 PH0~PH7 // 2. 外部中断控制 PJ0~PJ1 PJ6~PJ7 // 3. LED亮灭控制 PK7 //======================================================================= //Last Updated:2011.03.18 // 增加的功能: // 1. 8路的软件脉冲累加功能,由PT0~PT7实现 // 2. 4路定时器功能,由PIT0~PIT3组成 //======================================================================= //Last Updated:2011.03.08 // 增加的功能: // 1.系统主频配置 // 2.串口信息配置 // 3.ATD转换配置 // 4.PWM配置文件 //======================================================================= #ifndef OS_CFG_H #define OS_CFG_H /********配置系统主频****************/ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_BUS_CLK 80 //16 32 40 48 64 80 88 96 104 112MHz //############################################################# /*******串口配置信息*****************/ //串口0相当配置 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_SCI0_EN 1 #define OS_SCI0_RATE 9600 //############################################################# //串口1相当配置 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_SCI1_EN 1 #define OS_SCI1_RATE 9600 //############################################################# /************** AD转换相关配置 ****************/ //AD 采样分辨率 0X00 for 8-bit data; 0X20 for 10-bit data; 0X80 for 12-bit data #define OS_ATD_RSLT_8BIT 0X00 //don't edit #define OS_ATD_RSLT_10BIT 0X20 //don't edit #define OS_ATD_RSLT_12BIT 0X40 //don't edit //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_RSLT OS_ATD_RSLT_8BIT //############################################################# //AD 采样前放电,需消耗2个ATD周期 0x00 for not discharge; 0x10 for discharge before ATD //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_SMP_DIS_EN 1 //############################################################# #define OS_ATD_SMP_DIS OS_ATD_SMP_DIS_EN * 0X10 //don't edit //ATD 序列转换完成中断允许使能 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_SCI_EN 1 //############################################################# //ATD 序列长度选择 //========================================================================================== /* ATDCTL3 Module Base + 0x0003 7 6 5 4 3 2 1 0 R DJM S8C S4C S2C S1C FIFO FRZ1 FRZ0 W Reset 0 0 1 0 0 0 0 0 */ //------------------------------------------------------------------------------------------ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_S8C_SEL 0 #define OS_ATD_S4C_SEL 0 #define OS_ATD_S2C_SEL 0 #define OS_ATD_S1C_SEL 0 //############################################################# #define OS_ATD_SC OS_ATD_S8C_SEL * 0X40 + OS_ATD_S4C_SEL * 0X20 + OS_ATD_S2C_SEL * 0X10 + OS_ATD_S1C_SEL * 0X08 //!!!don't edit #define OS_ATD_NUM OS_ATD_S8C_SEL * 8 + OS_ATD_S4C_SEL * 4 + OS_ATD_S2C_SEL * 2 + OS_ATD_S1C_SEL #if OS_ATD_NUM == 0 #undef OS_ATD_NUM #define OS_ATD_NUM 16 #endif //ATD 采样周期选择 //========================================================================================== /* ATDCTL4 Module Base + 0x0004 7 6 5 43210 R SMP2 SMP1 SMP0 PRS[4:0] W Reset 0 0 0 00101 */ //------------------------------------------------------------------------------------------ /* SMP2 SMP1 SMP0 Sample Timein Number ofATD Clock Cycles 0 0 0 4 0 0 1 6 0 1 0 8 0 1 1 10 1 0 0 12 1 0 1 16 1 1 0 20 1 1 1 24 */ //to config these bit,to look up table above //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_SMP2_SEL 0 #define OS_ATD_SMP1_SEL 0 #define OS_ATD_SMP0_SEL 0 //############################################################# #define OS_ATD_CLK_CYCLES OS_ATD_SMP2_SEL * 0X80 + OS_ATD_SMP1_SEL * 0X40 + OS_ATD_SMP0_SEL * 0X20 //!!!don't edit //ATD CLK 预分频 f(BusClk) // f(AtdClk) = ------------------ // 2 * (PRS + 1) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_PRS 5 //default = 5 ; 0~31 //############################################################# //ATD 单、多通道转换设置;单通道时,AD采样只从一个指定的模拟信号输入端采样。 //多通道时,采样可以从多个不同的模拟信号输入口采样,如AN0、AN1... //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_MULT 1 //0 for single channel,and 1 for multi channel for continuous //############################################################# //连续转换选择控制,SCAN=1时,完成一个序列采样后,再次进入采样环节。否则不进入。 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_SCAN 1 //0 for single channel,and 1 for multi channel for continuous //############################################################# //ATD 开始通道选择 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_CHANNEL 0 //单独转换通道或者连续转换的起始通道设置 //############################################################# //ATD数字选择允许控制 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_ATD_DI_CFG 0 //0~0XFFFF,每个位对应相应引脚输入的使能 //############################################################# /*******PWM配置信息*****************/ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_PWM_EN 0X01 //相应通道是否开户,0为关闭,1为开启 #define OS_PWM_POL 0XFF //相应通道极性选择,0为低起,1为高起 #define OS_PWM_CLK 0XFF //相应通道时钟选择,0为PRECLK,1为SCLK //############################################################# //#define OS_PWM_PER 255 //默认取OS_PWM_PER = 250,以便于计算式的化简 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_PWM_PRCLKA 50 //kHz 预分频后时钟A的频率 #define OS_PWM_PRCLKB 50 //kHz 预分频后时钟B的频率 //############################################################# //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_PWM_SCLA 10 //kHz 再分频后时钟A的频率 #define OS_PWM_SCLB 10 //kHz 再分频后时钟B的频率 //############################################################# /***********脉冲累加配置信息********************************/ //注:只提供PT0~PT7的软件脉冲配置,PT7提供16位的硬件脉冲累加器配置 //PT0~PT6的脉冲累加中断允许,以用于软件计数,但对外不提供接口 //PT7的脉冲累加中断禁止,对外也不提供接口 //其中PT口全配置为输入捕捉功能 #define OS_PLUS_EN 0XFF //分别对应PT0~PT7的脉冲累加器的使能位,0为禁止,1为使能,暂时此位没有用处 #define OS_PLUS_EDGE 0X00 //捕捉边缘,0为上升沿,1为下降沿 #define OS_PLUS_PT7 0 //硬件累加器(PT7)使能位,0为禁止,1为使能,暂时不加入硬件累加器功能 /************周期时钟PIT配置信息**************************/ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_PIT_EN 0X0F //只有4个16位的定时器,只有低四位配置有效 #define OS_PIT_CLK 0X00 //时钟源选择,0为micro time base 0,1为micro time base 1,暂时没有区别 #define OS_PIT0_PER 50000 //0~65536,每个代表2us #define OS_PIT1_PER 50000 //0~65536,每个代表2us #define OS_PIT2_PER 50000 //0~65536,每个代表2us #define OS_PIT3_PER 50000 //0~65536,每个代表2us //###################################################################### /***************IO设置****************************/ //可设置IO为中断输入,触发沿可配置 //H7 H6 H5 H4 , H3 H2 H1 H0 (LSB),H3~H0这几个引脚配置成中断模式时会出现问题!!! //问题描述如下:H3~H0无论触发哪个,都会同时置位这四个标志位!!! //此版本V1.0这两个属性别设置!!! #define OS_IOH_INT_EN 0X00 //设置PH口是否工作在中断模式,只作普通IO,用作中断会出现错误!!! #define OS_IOH_INT_EDGE 0X00 //1为上升沿触发,0为下降沿触发,作普通IO时此设置无效!!! //分别对应 J7 J6 0 0 , 0 0 J1 J0 //这个可以配置,如果要外部中断,不是用PH口,只能用PJ口 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define OS_IOJ_INT_EN 0XFF //设置PJ口是否工作在中断模式 #define OS_IOJ_INT_EDGE 0XFF //1为上升没触发,0为下降沿触发 //###################################################################### #endif

你可能感兴趣的:(飞思卡尔,os,module,io,c,工作,table)