申小林 发表于 2024-10-24 15:52

【翌创ET6001】-03-定时器测试

<div class='showpostmsg'><p>官网的定时器有点让人捉摸不透,只运行一次,自己找了好久原因,还程序不运行,然后自己找了一下原因,然后吧自己的过程写下来,</p>

<p>首先我们看一下定时器的时钟树。</p>

<p>使用64位的定时器的话我们直接按照官网的PTIM2来进行操作。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">然后时钟的频率可以在参考手册里面看到。</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;"></div>

<div>&nbsp;</div>

<div>可以看到时钟频率是100M,我们这里的话就可以进行编程了。</div>

<div>&nbsp;</div>

<pre>
<code class="language-cpp">
void PTIMER_peripheral_init(void)
{
                PTIM_InitTypeDef init;
                PTIM_StructInit(&amp;init);
       
                init.prescaler = (100-1);//--200 分频 算下来是1M的时钟
                init.period = 999;//--1000分频,算下来就是1ms的中断--
                init.workMode = PTIM_WORK_FREERUN;
                init.loadMode = PTIM_LOAD_IMMEDIATELY;
                init.cpuHaltEn=ENABLE;
       
                PTIM_Init(PIT2, &amp;init);

                NVIC_EnableIRQ(PIT64_0_IRQn);
                PTIM_Enable(PIT2);
                PTIM_ITEnable(PIT2);
}


unsigned int Tcount=0;

void PIT64_0_IRQHandler(void)
{
    if (PTIM_GetITStatus(PIT2) == SET)
    {
                        PTIM_ClearITStatus(PIT2);
                        Tcount++;
                        if(Tcount==500)
                        {
                          Tcount=0;
                          LED_Togio();
                        }
    }
}
</code></pre>

<div style="text-align: center;">
<p>定时器的代码如山谷所示,我们通过对IO的翻转进行测量,使用逻辑分析仪。</p>
</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<div style="text-align: center;">我们使用逻辑分析仪就可以看到,目前我们的IO翻转的时间是比较精确的,这样的话我们就可以做更多的事情了。</div>

<p>&nbsp;</p>
</div>

<div style="text-align: center;">&nbsp;</div>

<p>好了今天定时器的就先分享到这里。</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2024-10-25 07:25

<p>确实IO翻转的时间是比较精确的,期待楼主后面精彩测试哈</p>
页: [1]
查看完整版本: 【翌创ET6001】-03-定时器测试