完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
功能:频率步进可任意选择,程序默认步进是1hz,通过2个按键接到2个外部中断引脚上来实现频率可调。
经验:之前直接将按键接到普通引脚上,用按键扫描法检测程序中频率步进值,结果频率要么不可调,要么频率超调,后来在网上看到有人把按键接到外部中断上,利用2个外部中断的下降沿触发来实现频率增加减少量检测,经验证可行。 遗憾:频率范围目前我也只能做到10hz-2khz可调了,频率再大误差就很大了,本来理论上,定时器中断时间最小可达到1us,也就是说输出频率最大可有500k,但是不知为什么很少有人用51单片机输出方波能达到50khz以上,所以希望大神能帮我分析下程序的问题。 51单片输出频率可调方波.zip (83.21 KB ) |
|
相关推荐
7个回答
|
|
老的51单片机在12MHz,指令周期为1us,整个中断包括保护现场进入中断,中断程序,岀栈退出中断程序返回原来程序,这些都是指令执行啊,所以一个中断执行时间C语言很难衡量,特别是us级时,只能通过汇编精确。
|
|
|
|
可以使用单片机PCA模块输出高速方波。按键肯定要去斗处理,用中断会导致系统中断处理很乱,莆田管脚+去斗就行了。
|
|
|
|
按键去抖了,但是用单片机定时器输出的方波,用普通按键加频率还是不准确啊
|
|
|
|
哦哦,中断服务程序执行时间不确定的原因吗
|
|
|
|
我经常用51来做逆变器,有时候频率100多K 还带死区的!! !
|
|
|
|
这就是51单片机做的PWM控制板!! 2路推挽方波带死区 29.3KHZ,PID控制占空比…… 还有5路PWM做后级的正弦波逆变和控制散热风扇的转速等等…… 2路10位差分ADC输入 1路24位高精度ADC 2路高压隔离采样, 一路峰值电流检测,一个触摸彩屏接口,3路DS18B20 还有控制外部硬件的接口 还有串口可以升级程序 或者和上位机通信!! |
|
|
|
比我做的强太多了,
|
|
|
|
只有小组成员才能发言,加入小组>>
3309 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9049 浏览 16 评论
4083 浏览 18 评论
1167浏览 3评论
601浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
592浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2329浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1892浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 19:19 , Processed in 1.447080 second(s), Total 90, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号