目前应用32位PIC的网友还很少,至少我只接触,不在用,暂时帮不上你.
将分频系数#define CORE_TIMER_FREQUENCY (PBCLK7_FREQUENCY / 2)改成/40看看呢,是不是你设置的时钟分频跟你找的不同。不过我也没用过这个单片机你可以试试看
2us 的定时,本身要求时钟比较高, 40Mhz 下 2us 能跑80条 nop,别的指令就更加慢了,可以试试 延时 20us, 40us,80us,100us,如果 40us以上都是准的,那肯定就是 速度慢了,没有办法到这个精度,都是猜的,我也没用过,但是这个小的定时会存在这种问题。 还有你的 /100与 /10000 没有太明白 本帖最后由 strong161 于 2017-10-7 14:43 编辑
谢谢指教。
我是先延时1ms的,用示波器查看,高电平时间是1.02ms,然后,我在这个基础上除以1000,理应能达到1us,但结果是40us左右
谢谢版主指教。
我是先延时1ms的,用示波器查看,高电平时间是1.02ms,然后,我在这个基础上除以1000,理应能达到1us,但结果是40us左右
谢谢指教
配置方面,我自己已经配置好了。
我延时1ms的话,示波器显示在1.02ms,那么,在这个基础上,我在除以1000,理应是1us,结果是40us
你看看手册有没有相关参数设置的说明,你要知道当前配置下,极限是多少。超过极限,就设不出来。
试试一个NOP指令延时多少,如果都比你这个时间大,那就没得玩了,努力倍频,之后还不行的话,那就说明达不到你这个小小延时
四楼正解,内核定时器一个周期增1,40M的话40个指令周期就是1us,但是你的代码可能超出了80个指令,因此计时已经超出了。
这段代码的原理就是读MIPS的协处理器的Count寄存器,然后根据主频来计算延时。
学习学习!!!!!!!!!!!!!!!!!!!!!!