完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 ly2 于 2014-11-26 20:35 编辑 昨天在高手的指点下把定时器产生PWM波周期不对的程序改了,在这里谢谢帮我的高手们,谢谢你们指点。现在我把定时器的中断时间改成10微秒,那么产生的PWM波周期应该是0.4毫秒,占空比还是50%,可是仿真出来却是0.9毫秒左右,这是什么原因呢?若是改为N>=3000,N<=1000,那么周期应该是30毫秒,占空比是1/3,可是仿真出来周期却是60毫秒,大了两倍,占空比对了,小弟感谢指点。。#include #define uint unsigned int #define uchar unsigned char ***it pwm=P2^2; uint N; void main() { TMOD=0X10; TH1=(65536-10)/256; TL1=(65536-10)%256; EA=1; ET1=1; TR1=1; while(1) { if(N>=40) N=0; if(N<=20) pwm=1; else pwm=0; } } void T1_time() interrupt 3 { TH1=(65536-10)/256; TL1=(65536-10)%256; N++; } |
|
相关推荐
4个回答
|
|
单片机中断是有执行时间的 ,10us的中断太短了,赋个初值就用了2us,用定时器的自动重载模式会好点
|
|
|
|
哦哦,那没有办法实现10微秒中断吗? |
|
|
|
精确的10us很难,用定时器自动重载模式,这样中断里就不用赋初值了,延时会准确点
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
690 浏览 0 评论
735 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
624 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1099 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1092 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 03:13 , Processed in 0.636549 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号