云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 嵌入式应用实例 - 图文

嵌入式应用实例 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/5 5:00:29

temp = SCIReN(1,1,SerialBuff); if(temp==0)SCISendN(1,1,SerialBuff); EnableInterrupt(); } */

//未定义的中断处理函数,本函数不能删除 interrupt void isrDummy(void) { }

//中断处理子程序类型定义 typedef void( *ISR_func_t)(void);

//中断矢量表,如果需要定义其它中断函数,请修改下表中的相应项目 const ISR_func_t ISR_vectors[] @0xFFCC = {

isrDummy, // 0xFFCC //时基中断 isrDummy, // 0xFFCE //IIC中断 isrDummy, // 0xFFD0 //ADC转换中断 isrDummy, // 0xFFD2 //键盘中断 isrDummy, // 0xFFD4 //SCI2发送中断 isrDummy, // 0xFFD6 //SCI2接收中断 isrDummy, // 0xFFD8 //SCI2错误中断 isrDummy, // 0xFFDA //SCI1发送中断 // isrSCIre, // 0xFFDC //SCI1接收中断 isrDummy, // 0xFFDC //SCI1接收中断 isrDummy, // 0xFFDE //SCI1错误中断 isrDummy, // 0xFFE0 //SPI中断 isrDummy, // 0xFFE2 //TPM2溢出中断

isrDummy, // 0xFFE4 //TPM2通道1输入捕捉/输出比较中断 isrDummy, // 0xFFE6 //TPM2通道0输入捕捉/输出比较中断 isrT1Out, // 0xFFE8 //TPM1溢出中断

11

// isrDummy, // 0xFFE8 //TPM1溢出中断

isrDummy, // 0xFFEA //TPM1通道5输入捕捉/输出比较中断 isrDummy, // 0xFFEC //TPM1通道4输入捕捉/输出比较中断 isrDummy, // 0xFFEE //TPM1通道3输入捕捉/输出比较中断 isrDummy, // 0xFFF0 //TPM1通道2输入捕捉/输出比较中断 isrDummy, // 0xFFF2 //TPM1通道1输入捕捉/输出比较中断 isrDummy, // 0xFFF4 //TPM1通道0输入捕捉/输出比较中断 isrDummy, // 0xFFF6 //ICG的PLL锁相状态变化中断 isrDummy, // 0xFFF8 //低电压检测中断 isrDummy, // 0xFFFA //IRQ引脚中断 isrDummy // 0xFFFC //SWI指令中断

//RESET是特殊中断,其向量由开发环境直接设置(在本软件系统的Start08.o文件中) };

Timer.h:

#ifndef timeR_H #define timeR_H

#include \#include \

#define TPM_CSTR(x)(*(vuint8 *)(0x00000020+(x-1)*64)) #define TPM_CNTH(x)(*(vuint8 *)(0x00000021+(x-1)*64)) #define TPM_CNTL(x)(*(vuint8 *)(0x00000022+(x-1)*64)) #define TPM_MODH(x)(*(vuint8 *)(0x00000023+(x-1)*64)) #define TPM_MODL(x)(*(vuint8 *)(0x00000024+(x-1)*64)) #define EnabletimerInt(x) TPM_CSTR(x) |= TPM1SC_TOIE_MASK #define DisabletimerInt(x) TPM_CSTR(x) &=~TPM1SC_TOIE_MASK #define TPM_NUM_1 1 #define TPM_NUM_2 2 #define TPM1_CH_0 0

12

#define TPM1_CH_1 1 #define TPM1_CH_2 2 #define TPM1_CH_3 3 #define TPM1_CH_4 4 #define TPM1_CH_5 5 #define TPM2_CH_0 0 #define TPM2_CH_1 1 void TPMinit(uint8 TPMNo); void SecAdd1(uint8 *p); #endif

Timer.c:

#include \

void TPMinit(uint8 TPMNo){ if(TPMNo > 2) TPMNo = 2; else if(TPMNo < 1) TPMNo=1;

TPM_CSTR(TPMNo)=0b00010110; TPM_CNTH(TPMNo) = 0x00; TPM_CNTL(TPMNo) = 0x00; TPM_MODH(TPMNo) = 0x7A; TPM_MODL(TPMNo) = 0x12; }

void SecAdd1(uint8 *p){ *(p+7)+=1; if(*(p+7)>9){ *(p+7) = 0; *(p+6)+=1; if(*(p+6)>5){

13

*(p+6)=0; *(p+4) += 1; // if(*p>=24) // *p = 0; if(*(p+4)>9){ *(p+4)=0; *(p+3)+=1; if(*(p+3)>5){ *(p+3)=0; *(p+1)+=1; if(*(p+1)>9){ *(p+1)=0; *p+=1;

if(*(p+1)==4&&*p==2){ *(p+1)=0; *p=0; } } } } } } }

3.1.1串行通信子程序

SCI.h:

#ifndef SCI_H #define SCI_H

#include \

14

搜索更多关于: 嵌入式应用实例 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

temp = SCIReN(1,1,SerialBuff); if(temp==0)SCISendN(1,1,SerialBuff); EnableInterrupt(); } */ //未定义的中断处理函数,本函数不能删除 interrupt void isrDummy(void) { } //中断处理子程序类型定义 typedef void( *ISR_func_t)(void); //中断矢量表,如果需要定义其它中断函数,请修改下表中的相应项目 const ISR_func_t ISR_vectors[] @0xFFCC = { isrDummy, // 0xFFCC //时基中断 isrDummy, // 0xFFCE

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com