飞思卡尔8位单片机第7章定时器和比较器模块.pptVIP

飞思卡尔8位单片机第7章定时器和比较器模块.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
飞思卡尔8位单片机第7章定时器和比较器模块

四、16位定时器模块的中断 中断标记TOF(TPMSC),CHnF(TPMCnCS) 清除:读相关控制寄存器,然后标记位写0。 TOF置1 ①加法计数,TPMCNT增至最大值(0xFFFF或TPMMOD),并翻转至0x0000时 ②加/减计数, TPMCNT=TPMMOD,并递减一个数时 CHnF置1 ①输入捕捉,触发事件发生 ②输出比较,TPMCNT=TPMCnV时 ③PWM,TPMCNT=TPMCnV时 TPM寄存器 0x0040-TPMSC 0x0045-TPMC0SC 0x0048-TPMC1SC 0x0041-TPMCNTH 0x0046-TPMC0VH 0x0049-TPMC1VH 0x0042-TPMCNTL 0x0047-TPMC0VL 0x004A-TPMC1VL 0x0043-TPMMODH 0x0044-TPMMODL TPM 应用范例 TPM软件定时器应用 如果不使用输入捕捉、输出比较、PWM这三种需要外部管脚配合的情形,则不用考虑2个独立通道,也不用设置TPMCnSC、 ( TPMCnVH:TPMCnVL )这6个寄存器。 PTBDD = 0xFF; PTBD = 0xFF; SOPT1 =0x03; TPMMOD = 31250; //4000000 = 31250 * 128 TPMSC = 0x4F; //允许中断,总线时钟128分频 interrupt 7 void TPM_ISR() { PTBD ^= 0xFF; TPMSC = TPMSC0x7F; } 初始化 中断子程序 TPM输入捕捉 SOPT1 = 0x03; //stop COP,Enable RST TPMSC = 0x0f; //禁止溢出中断,自由加法计数,Fbus/128 TPMC0SC = 0x4c; //允许捕捉中断,上升沿和下降沿捕捉 interrupt 5 void TPM_CH0_ISR() { unsigned int n; n=TPMC0VH*256 + TPMC0VL; //读取TPM捕捉的数值, TPMC0SC = TPMC0SC0x7F; //清除标志; } //捕捉中断代码 添加的全局变量unsigned char n_str[6]; PWM [例1]利用通道1产生边沿对齐的方波,其占空比为25%。 [解]选择总线时钟,模值寄存器选择4000,(十六进制为0FAO),通道辅助寄存器值选择1000(十六进制为03E8),则程序如下所示。 #include hidef.h #include derivative.h void main(void) { DisableInterrupts; /*禁止中断*/ SOPT1=0x7F; /*禁止看门狗*/ TPMSC=0x08; /*边沿对齐PWM,总线时钟,预分频因子1*/ TPMMODH=0x0F; TPMMODL=0xA0; /*向模寄存器写初值*/ TPMC0SC=0x28; /*高为真脉冲*/ TPMC0VH=0x03; TPMC0VL=0xE8; /*向通道1定时寄存器写初值*/ for(;;) { while(TPMC0SC_CH0F!=1){ } TPMC0SC_CH0F=0; } } 边沿对齐PWM应用 SOPT1 = 0x03; //stop COP,Enable RST TPMMOD = 62500; //if Fbus=4MHz,then period is 2s TPMC0V = 31250; //50% TPMSC = 0x4F; //允许溢出中断,加法计数,Fbus/128 TPMC0SC = 0x68; //允许通道中断,边沿对齐PWM, 脉冲有效期间高电平 中断允许前添加初始化代码: interrupt 5 void TPM_CH0_ISR() { TPMC0SC = TPMC0SC0x7F; //清除标志; } //比较匹

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档