拉菲娱乐平台官网: [单片机芯片] 关于CH579的定时器TMR0的设置问题

永利游戏开户直营
225|11
楼主
本帖最后由 iotd117 于 2020-9-8 11:54 编辑

电话跟销售申请后,很快就拿到CH579M-R1-1v2开发板了,测试TMR0时发现能设置的最小定时时间只能到2ms,例程中TMR0的初始化是
TMR0_TimerInit( FREQ_SYS / 10 );                  // 设置定时时间 100ms
我将10改到500后得到的定时时间是2ms,再改大之后就没效果了,不知道大家有没有碰到这个问题,或者是请沁恒的工程师帮忙解答一下是否就是只能到2ms?
另外,期待更多关于ble_mesh相关的资料和说明

沙发
| 2020-9-8 17:49 | 只看该作者
32M主频下,理论最低延时为31.25ns,用逻辑分析仪测试定时器中断反转IO,最低1.17us。例程中是在中断服务程序中反转IO,将IO引脚与LED相连,通过观察LED的闪烁频率确定延时的长短效果,到达一定频率后肉眼无法看出LED的闪烁。

板凳
| 2020-9-8 18:29 | 只看该作者
感谢楼主的分享,一直认为这样的文章是我最需要的文章。
地板
| 2020-9-8 18:31 | 只看该作者
一直认为这样的文章是我最需要的文章。
5
| 2020-9-8 19:08 | 只看该作者
0改到500后得到的定时时间是2ms,再改大之后就没效果了,不知道大家有没有碰到这个问题,或者是请沁恒的工程师帮忙解答一下是否就是只能到2ms?
6
| 2020-9-8 19:25 | 只看该作者
pinTopin替换STM32F103时,如果碰到一些问题可以参考我们的应用笔记。
7
| 2020-9-8 22:29 | 只看该作者
很多灌水的呀,无意义的回帖,不知道在干嘛,这种问题,
这个定时器一看就是设置计数溢出值,然后产生中断,,设置成500产生2ms中断,更大就不产生了?逻辑分析仪抓下呀,怎么可能,别说大于500,就是5000 50000也正常,
8
| 2020-9-9 10:22 | 只看该作者
总结的不错,学习了。很棒的。
9
 楼主 | 2020-9-10 09:32 | 只看该作者
kingsleych 发表于 2020-9-8 22:29
很多灌水的呀,无意义的回帖,不知道在干嘛,这种问题,
这个定时器一看就是设置计数溢出值,然后产生中断,,设置 ...

多谢你的答复!
我也知道是设置寄存器R32_TMR0_CNT_END的值,主频32M/500=64000,等时间到了64000*31.25ns=2ms,我是通过在中断响应函数里反转PB16,没有逻辑分析仪,是用的示波器来查看
void TMR0_IRQHandler( void )
{
    if( TMR0_GetITFlag( TMR0_3_IT_CYC_END ) )
    {
        TMR0_ClearITFlag( TMR0_3_IT_CYC_END );
        GPIOB_InverseBits( GPIO_Pin_16 );
    }
}这三张波形图分别是设置FREQ_SYS / 500,/1000,/2000时的波形图。翻看手册也没有找到原因,所以才在这里请教。

2000.jpg (292.44 KB, 下载次数: 0)

2000.jpg

1000.jpg (302.97 KB, 下载次数: 0)

1000.jpg

500.jpg (293.13 KB, 下载次数: 0)

500.jpg
10
| 2020-9-10 09:53 | 只看该作者
iotd117 发表于 2020-9-10 09:32
多谢你的答复!
我也知道是设置寄存器R32_TMR0_CNT_END的值,主频32M/500=64000,等时间到了64000*31.25n ...

方便的话把工程发出来,我们这测试下,我这用的是官网最新的EVT 2.0测试的,TMR0可以正常设置不同的定时时间。官网例程下载:http://www.026.ib220.com/downloads/CH579EVT_ZIP.html
11
 楼主 | 2020-9-10 14:06 | 只看该作者
WCHTech2 发表于 2020-9-10 09:53
方便的话把工程发出来,我们这测试下,我这用的是官网最新的EVT 2.0测试的,TMR0可以正常设置不同的定时 ...

问题已经找到,TMR0是没有问题的,问题出在我自己的中断响应函数。
本来是想产生spwm波形的,于是在TMR0_IRQHandler( void ) 里写了
PWM4_ActDataWidth( sin(2 * PI * TmrCounts / Sin_Cycle_Counts) * PWMX_Cycle / 2 + PWMX_Cycle / 2 );
这样的乘除运算太耗时间了,所以导致定时不对。
多谢解答!
12
| 2020-9-14 18:12 | 只看该作者
学习了,拉菲娱乐平台官网:不错,学习了很多,很深入的,感谢楼主的分享。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
阿玛尼广西快乐十分助赢软件 pt黄金之旅登入 彩运来电子游戏直营网 澳门金沙城中心剧院 波音现金赌博排行榜手机app
OG东方馆电子游戏官方网游戏 世爵娱乐登入 网上娱乐博彩网站导航 比分365 沙龙国际网址
澳门买球开户 联众信誉娱乐场 澳门神话官方赌场 申博官网现金网登入 新葡京网上娱乐登入
申博官网登录登入 太阳城免费开户 www.sun598.com 太阳城申博开户手机APP下载登入 澳门葡京网上开户平台