历史上的今天
今天是:2024年09月27日(星期五)
2021年09月27日 | stm8s跳出中断程序c语言,STM8S I2C总线中断程序
2021-09-27
/*==========================================================================================================
本源程序文件内部使用的一些操作指令的宏定义
==========================================================================================================*/
/*------------------------------------------------------------------------------------------------
输入/输出端口和引脚宏定义:(注:下列这些定义用以简化宏函数参数字符。)
------------------------------------------------------------------------------------------------*/
#define MFH_PIN_CFG_INPU_I2cScl MFH_PIN_CFG_INPU(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_INHZ_I2cScl MFH_PIN_CFG_INHZ(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OOUT_I2cScl MFH_PIN_CFG_OOUT(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OUTH_I2cScl MFH_PIN_CFG_OUTH(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OUTL_I2cScl MFH_PIN_CFG_OUTL(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_OUT_SETH_I2cScl MFH_PIN_OUT_SETH(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_OUT_CLRL_I2cScl MFH_PIN_OUT_CLRL(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_IN_STATE_I2cScl MFH_PIN_IN_STATE(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_INPU_I2cSda MFH_PIN_CFG_INPU(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_INHZ_I2cSda MFH_PIN_CFG_INHZ(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OOUT_I2cSda MFH_PIN_CFG_OOUT(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OUTH_I2cSda MFH_PIN_CFG_OUTH(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OUTL_I2cSda MFH_PIN_CFG_OUTL(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_OUT_SETH_I2cSda MFH_PIN_OUT_SETH(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_OUT_CLRL_I2cSda MFH_PIN_OUT_CLRL(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_IN_STATE_I2cSda MFH_PIN_IN_STATE(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
/*------------------------------------------------------------------------------------------------
MFHI2cInnEventReg( ) --------- 输入I2C总线的事件和状态寄存器值
MFHI2cChkEventReg( ) --------- 检查I2C总线事件状态寄存器中的事件状态值
MFHI2cInnEventMem( ) --------- 输入I2C总线的事件和状态存储器值
MFHI2cChkEventMem( ) --------- 检查I2C总线事件状态存储器中的事件状态值
------------------------------------------------------------------------------------------------*/
#if (defined(_IAR_EW_AVR_))
#define MFHI2cInnEventMem( ) gucvI2cEvent = TWSR
#define MFHI2cChkEventMem( ) (gucvI2cEvent & cI2cTwsrMask)
#elif ((defined(_IAR_EW_MCS51_)) || (defined(_KEIL_UV_MCS51_)))
#elif ( defined(_IAR_EW_STM8_)
|| defined(_COSMIC_STM8_) ) // “......_STM8 编译器”条件编译开始
#ifdef _USE_STM8_FWLIB_ // “使用 STM8 FWLib 的库文件”条件编译开始
#else // “_USE_STM8_FWLIB_”
#define MFHI2cInnEventMem( ) NOTHING
//#define MFHI2cInnEventMem( ) gucvI2cEvent = temp
#define MFHI2cChkEventMem( ) (gucvI2cEvent & cI2cEvtSr2Mask)
#endif // “_USE_STM8_FWLIB_”
#else
#error 错误:
#endif // “PreMcuIs__......”
/*------------------------------------------------------------------------------------------------
MFHI2cBusModSwRst( ) --------- 软件复位I2C模块,释放I2C总线
MFHI2cFlgEventClr( ) --------- 清0I2C总线事件中断标志位
MFHI2cIntEventClr( ) --------- 进入中断后,在中断句柄中,清0I2C总线事件中断标志位(在中断服务程序中)
MFHI2cIntEventChk( ) --------- 检查I2C总线事件中断状态值
MFHI2cIntEventOnn( ) --------- 使能I2C总线事件全部中断
MFHI2cIntEventOne( ) --------- 使能I2C总线事件中断、错误中断,禁止缓冲中断
MFHI2cIntEventOff( ) --------- 禁止I2C总线事件全部中断
MFHI2cBusErrorChk( ) --------- 检查I2C总线在收发过程中存在的全部错误状态值
MFHI2cBusErrorClr( ) --------- 清0I2C总线在收发过程中存在的全部错误标记
MFHI2cBusNackStar( ) --------- 发出 START 信号(起始条件),没有 ACK 脉冲
MFHI2cBusNackReps( ) --------- 发出重复 START 信号(重新开始条件),没有 ACK 脉冲
MFHI2cBusNackStop( ) --------- 发出 STOP 信号(结束条件),没有 ACK 脉冲
MFHI2cBusRdataAck( ) --------- 在接收之后发出 ACK 脉冲
MFHI2cBusRdatNack( ) --------- 在接收之后发出 NOT ACK
------------------------------------------------------------------------------------------------*/
#if (defined(_IAR_EW_AVR_))
#define MFHI2cBusModSwRst( ) NOTHING
#define MFHI2cFlgEventClr( ) NOTHING
#define MFHI2cIntEventClr( ) TWCR = (1<
(1<
(0<
(0<
(0<
#define MFHI2cIntEventChk( ) NOTHING
#define MFHI2cIntEventOnn( ) NOTHING
#define MFHI2cIntEventOne( ) NOTHING
#define MFHI2cIntEventOff( ) NOTHING
#define MFHI2cBusErrorChk( ) NOTHING
#define MFHI2cBusErrorClr( ) NOTHING
#define MFHI2cBusNackStar( ) TWCR = (1<
(1<
(0<
(1<
(0<
#define MFHI2cBusNackReps( ) TWCR = (1<
(1<
(0<
(1<
(0<
#define MFHI2cBusNackStop( ) TWCR = (1<
(0<
(0<
(0<
(0<
#define MFHI2cBusRdataAck( ) TWCR = (1<
(1<
(1<
(0<
(0<
#define MFHI2cBusRdatNack( ) TWCR = (1<
(1<
(0<
(0<
(0<
#elif ((defined(_IAR_EW_MCS51_)) || (defined(_KEIL_UV_MCS51_)))
#elif ( defined(_IAR_EW_STM8_)
|| defined(_COSMIC_STM8_) ) // “......_STM8 编译器”条件编译开始
#ifdef _USE_STM8_FWLIB_ // “使用 STM8 FWLib 的库文件”条件编译开始
#else // “_USE_STM8_FWLIB_”
史海拾趣
|
在单片机的开发中,软件的过程式开发(跟自顶向下的过程式语言有直接关系)是长久以来的软件开发方法,但不能否认的是,存在数十种为人所知和不知的 RTOS,甚至是开发人员自己动手构造一个简单的 RTOS 以提高工作效率和改善软件构建的复杂性,这也 ...… 查看全部问答> |
|
目录: 第一章:绪论 第二章:电路实验 第三章:电路的计算机辅助分析 第四章:电工测量与常用电工仪表的基本知识 第五章:常用仪器设备使用的基本知识 附录一:电路分析参考程序 附录二:计算机上机操作说明 详细信息: 书名:基本电路理 ...… 查看全部问答> |
|
用quartus2进行波形仿真时,打不开仿真后的波形文件,是什么原因? 程序编译综合都没问题,加载网表也没出错。仿真提示也是成功的,但是在information里可以看到说波形文件里有错导致打不开仿真后的波形图。波形文件怎么会有错呢?… 查看全部问答> |
|
各位大虾, 小弟需要一个将一个.dll文件打包安装到设备,同时修改注册表.我的.inf文件已经写好了,能正确生成.cab文件, 现在就是不知道怎么才能修改注册表,那位兄弟能指点以下?谢了。… 查看全部问答> |
|
www.kingofcoder.com 100MB 免費空間 + 100MB mysql 空間 www.kingofcoder.com 100MB 免費空間 + 100MB mysql 空間 大家快點來呀 JSP, PHP, oracle空間, 很快就會開通, 大家快點登記吧 http://www.kingofcoder.com匯集大量各種編程語言文章、提供免費asp、php、jsp空間、免費mysql、oracle數據庫空間 ...… 查看全部问答> |
|
MSK 4203PWM电机控制器/放大器 MSK 4203PWM电机控制器/放大器的特点: ★75V,10A的输出能力 ★自带高、低边驱动电路 ★内含死区保护和短路保护 ★与内部电路绝缘的外壳可直接安装散热器 ★四象限工作模式,力矩控制 ★符合MIL-PRF-38534的H级产品 ...… 查看全部问答> |
|
TI LM3S M3的供电共有4组:3.3V数字,用于I/O供电和内置LDO供电,一般标号为VDD,需要外置供电提供;1.8V,一般标号为VDDC,为内核和逻辑供电,一般由内置LDO提供,直接连接到LDO管脚。查看器件的Errata 表,有的M3的LDO有问题,不能稳定供电 ...… 查看全部问答> |




