完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我想问一下,这个程序在仿真中为什么不能实现20ms内一个脉冲呢。还有没有更好的方案去解决。 谢谢....
#include #define uchar unsigned char #define uint unsigned int uchar num1=0,num2=0,num3=0,num4=0, i=0, j=0,m=0,n=0,h=0; table[][5]={{5,13,19,23,25}, {13,19,23,25,5}, {19,23,25,5,13 }, {23,25,5,13,19} }; ***it pwm1=P2^0; ***it pwm2=P2^1; ***it pwm3=P2^2; ***it pwm4=P2^3; void TO_time() interrupt 1 { TH0=(65536-100)/256; TL0=(65536-100)%256; num1++; num2++; num3++; num4++; { for(i=0;i<4;i++) switch(i) { case 0: { { if(num1==table[0][h]){pwm1=0;}else if(num1==200){pwm1=1;num1=0;h++;} if(h==5)h=0;}}; break; case 1: { { if(num2==table[1][j]){pwm2=0;}else if(num2==200){pwm2=1;num1=0;j++;} if(j==5)j=0;}}; break; case 2: { { if(num3==table[2][m]){pwm3=0;}else if(num3==200){pwm3=1;num1=0;m++;} if(m==5)m=0;}}; break; case 3: { { if(num4==table[3][n]){pwm4=0;}else if(num4==200){pwm4=1;num1=0;n++;} if(n==5)n=0;}}; break; } } } void main() { TMOD=0x20; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; while(1); } |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:08 , Processed in 0.622963 second(s), Total 40, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
9555
