Microchip
直播中

李淑嘉

7年用户 264经验值
私信 关注
[问答]

如何使用机器周期计算PIC32的延迟

我需要写1ms的简单延迟函数,如下所示。void._ms(无符号长整数延迟){.=.*5000;.(.--);}我正在使用20Mhz的晶体。以下是配置设置:#pragma config UPLLEN=ON//USB PLL Enabled#pragma config FPLLIDIV=DIV_4//PLL Input Divi。#pragma配置FPLLMUL#pragma配置FPpragma配置FPPRPR配置FPLLMUL=MUL_16//PLL乘法器#prag配置FPPLL乘法器\#pragma配置FPPLL复用器FPPLL乘法器配置FPPLL乘法器配置FPLLPLL配置FPLLODODIV\#pragma配置FPPLL配置FPPLL配置FPPLL配置FPLLODODODODIV\\\\\\\\\242424242424看门狗定时器邮寄#pragma cFCKSM=CSDCMD//时钟切换&;故障安全时钟监视器失效安全时钟开关失效安全时钟开关\\实用程序配置操作安全时钟监视器\\实用程序配置OSCIACACACACACACDCDCDCDC监视器\\\\\操作操作程序配置操作操作程序配置OSCICICICICICOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOOFF=OFF/OFFm配置FNOSC=PRIPLL//振荡器选择#pragma配置CP=OFF//代码保护#pragma配置BWP=OFF//引导闪存写保护#pragma配置PWP=OFF//程序闪存写保护#pragma配置ICESEL=ICS_PGx1//ICE/定时器通道选择#pragma配置DEBUG=OFF如何计算延迟1ms?

回帖(6)

李兆峰

2020-3-11 10:08:27
我已经成功地使用了这个代码:HTTP://www. McCHIP.COM/FUMMS/FUNDSPE/101500
举报

陈晨

2020-3-11 10:22:19
PIC32是具有核心定时器的MIPS处理器。这对于这种类型的延迟是非常有用的。我以前把它寄出了,你可以在周日再问一次。或者你可以在论坛上搜索它。
举报

贾绰

2020-3-11 10:31:59
CinziaG发布的代码有一个小问题。核心定时器是32位长,所以它最终(几分钟)将从0xFFFF_FFFF翻滚到0x0000_0000,然后增量时间计算将不工作。请参阅所附文件,以获得在Harmony中工作的示例。
举报

李子跃

2020-3-11 10:39:16
垃圾。只要DWORD、StartTime和DelayCount被定义为无符号整数,ReadCoreTimer返回无符号整数,无符号算术的性质就确保了它能够正常工作。我自己的代码:-工作得很好(只要您定义SYSTEMCLOCK!).
举报

更多回帖

发帖
×
20
完善资料,
赚取积分