请教:用定时器如何产生高频对称方波
STC单片机,频率24MH 定时5US在定时中断,P10=!P10,按理应可以产生对称的方波,但实测为什么高电平4US 低电平9US 而且不管初值是高是低,就是低电平时间长。定时1US的话,则根本输出不了波形了。24M最高输出频率可以达到多少?是不是指令周期没有考虑进去。先仿真试试看 应该用定时器直接自动取反输出,不用中断,输出12MHz都可以。
你这种情况,估计是中断耗时超过5us了。 中断的响应是需要时间的,而且取于当前的指令执行情况,你这中断太快了,所以影响很大 用的哪个定时器?估计应该是每次装的值变了,24M用指令跑20M方波应该可以做到 kingTek 发表于 2023-3-3 14:03
用的哪个定时器?估计应该是每次装的值变了,24M用指令跑20M方波应该可以做到 ...
对称方波,100KH都达不到
dyx8899 发表于 2023-3-2 21:44
是不是指令周期没有考虑进去。先仿真试试看
仿真与直接都一样,按理说指令周期24M 高低电平没5MS好相差
24M的STC做US级方波,还真是有点勉强,
很多应者没有这样想:这样产生方波没有问题,但如果误差一个到几个运算周期,无论是中断影响还是CPU自身延迟耽误,
造成的误差是多少呢:1/24吗?
到底多大,算算就知道是否满足你的要求。
包括脉冲、转速测量,我见到过就没关心这个问题,那精度是多少呢,自己也不知道,只知道有时误差大。
这是做任何参与“时间”计量的项目必须严格考核的问题。 GlenX 发表于 2023-3-5 17:20
24M的STC做US级方波,还真是有点勉强,
很多应者没有这样想:这样产生方波没有问题,但如果误差一个到几个 ...
24M时钟产生US级方波算1US吧,那就是500NSSTC号称比8051快24倍,那么8051 12M晶振是500NS一条指令,而这个500/24差不多50NS一条指令没问题,有10条指令可执行,还不行,实际只有一个指令取反。而且采用PWM根本不要指令了,都是硬件产生的。
coody 发表于 2023-3-2 22:48
应该用定时器直接自动取反输出,不用中断,输出12MHz都可以。
你这种情况,估计是中断耗时超过5us了。 ...
STC单片机有定时器自动取反方波吗
nbsmaps 发表于 2023-3-20 17:44
STC单片机有定时器自动取反方波吗
用定时器PWM方式,就是不知道你用的引脚有没有这个功能 nbsmaps 发表于 2023-3-20 17:44
STC单片机有定时器自动取反方波吗
没看过STC的手册么?每个定时器都可以自动取反输出方波(频率太快了就不要允许中断),输出方波频率=fosc/2/N,比如跑32MHz,可以输出32/2/N=16/N MHz,经常用。 比如STC8系列,定时Timer0可以从P3.5输出24/2/N的方波,N=120时,输出方波频率=24000/2/120=100KHz,N=1~65535,超级方便。 GlenX 发表于 2023-3-5 17:20
24M的STC做US级方波,还真是有点勉强,
很多应者没有这样想:这样产生方波没有问题,但如果误差一个到几个 ...
估计你没用过STC的芯片,用任意一个定时器工作于16位自动重装模式,1T模式,可以输出fosc/2/N的频率,N=1~65535,比如跑32MHz,就可以输出16/N MHz的方波频率,不占用CPU时间。
很多人对STC的MC其实都不熟悉,就是各种猜测,其实STC的MCU不错的了,速度快。
经过实际使用(早两年STM 200+一片转STC),发现很多项目都满足。
最近做的一个替代,是一个DDS芯片,米帝的DDS芯片贵得离谱,还很难买,我只用到500KHz的正弦波/方波,1Hz步进,尝试使用STC32G来做,完美解决,跑32.768MHz,输出采样达到3.2768MHz,0.001Hz步进(32位累加器),10个周期就完成DDS的处理(累加器+频率字,查正弦表输出,循环)。 nbsmaps 发表于 2023-3-3 14:41
对称方波,100KH都达不到
我经常输出10MHz左右的方波,怎么会输不出100KHz?
我用STC15W204S SOP8做的RFID读卡器,单芯片就解决了,LM358都不用,使用MCU内带的比较器恢复数据,软件解码,用定时器输出125KHz方波驱动线圈,可靠读卡距离7~8cm。 用PWM产生没问题的
感谢coody与岛上称霸,STC因为用了很长时间了,一直没用到这个功能,所以就没细看资料了。现在测试一下,是可以直接在定时器引脚输出的。以前的15W好象不行,换8H 8F的都要吧了。谢谢! sjnh 发表于 2023-3-21 09:28
用定时器PWM方式,就是不知道你用的引脚有没有这个功能
定时方式就行了,PWM 方式因为频率一直要变,不方便 coody 发表于 2023-3-21 16:03
我经常输出10MHz左右的方波,怎么会输不出100KHz?
我用STC15W204S SOP8做的RFID读卡器,单芯片就解决了 ...
你也是做读卡器啊,我也是,一直做不出来。想做的远距离读卡,有没有什么好的方案?关键是卡要便宜。到时项目成了,有出售的话,一起分分利润{:biggrin:}
页:
[1]