查看: 1826|回复: 0

[其他] [求助]DZ60输出2MHz时钟

[复制链接]

该用户从未签到

5

主题

22

帖子

2

注册会员

Rank: 2

积分
130
最后登录
2021-5-17
发表于 2017-11-3 10:58:20 | 显示全部楼层 |阅读模式
我用TPM1定时器中断来驱动IO口跳变模拟时钟输出,但这种形式在我的程序里最多只能输出127KHz左右,再大的话程序会停止运行,可能是因为中断频率太快无法执行正常进程。
然后我尝试使用TPM1的PWM模式输出,把TPM1的CH0配置为中央对齐PWM模式,按理说PTD0脚应该有矩形波输出才对,但我测过没有输出,不知道是怎回事,以下是我的配置:
  1. void    SCKTimerTPM1Init( void )
  2. {   
  3.     TPM1SC = (TPM1SC_CPWMS_MASK | TPM1SC_CLKSA_MASK | TPM2SC_PS1_MASK );//晶振16MHz,总线频率为8MHz,4分频
  4.     TPM1CNTH = 0x00;
  5.             TPM1CNTL = 0x00;
  6.             TPM1MODH = 0x00;
  7.             TPM1MODL = 0x08;
  8.             TPM1C0SC |=  TPM1C0SC_ELS0B_MASK ;
  9.             TPM1C0VH = 0x00;
  10.             TPM1C0VL = 0x05;
  11. }

  12. void    EnableSCKTimerTPM1( void )    //使能定时器
  13. {
  14.     TPM1MODH = 0x00;   
  15.     TPM1MODL = 0x08;   
  16.     TPM1SC |=  TPM1SC_CLKSA_MASK;
  17. }
复制代码
求助各位大神,这样配置为何PTD0脚没输出,芯片手册上原话:“当 TPM 被配置用于中央对齐 PWM ( and ELSnB:ELSnA not = 0:0)时,该 TPM 中所有通道的数据方向被改变; TPMxCHn 管脚被强制用作受 TPM 控制的输出 ”。


我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 16:15 , Processed in 0.087567 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表