如何利用单片机产生一个周期为1s脉宽为10us左右的脉冲
时间:10-02
整理:3721RD
点击:
大家好:
最近写一个脉冲的程序,利用单片机产生一个周期为1s,脉宽为10us的脉冲信号,按照自己的思路,最多可以做到脉宽是100us,当脉宽小于100us后程序会乱跑;我利用51和msp430写的程序,都有相似的问题:望大家教教小弟。
while(1)
{
P3OUT |= BIT1;
for(i=1;i>0;i--)
__delay_cycles(1);
P3OUT &=~ BIT1;
for(i=1000;i>0;i--)
__delay_cycles(1000);
}
这是430的脉冲循环部分。这个程序是会乱跑。
最近写一个脉冲的程序,利用单片机产生一个周期为1s,脉宽为10us的脉冲信号,按照自己的思路,最多可以做到脉宽是100us,当脉宽小于100us后程序会乱跑;我利用51和msp430写的程序,都有相似的问题:望大家教教小弟。
while(1)
{
P3OUT |= BIT1;
for(i=1;i>0;i--)
__delay_cycles(1);
P3OUT &=~ BIT1;
for(i=1000;i>0;i--)
__delay_cycles(1000);
}
这是430的脉冲循环部分。这个程序是会乱跑。
这样写不好,可以开一个中断,设置每1us进入一次中断,取一变量cnt_1us进入一次中断加一
用定时器就好做吧