使用定时器0输出方波,占空比不是50%
使用定时器输出方波,但方波不是标准的占空比为50%,第一,二个高电平时间为100us,第三个变成170us,如此反复程序如下
#include <reg52.h>
#include<intrins.h>
#define ucharunsigned char
#define uint unsigned int
sbit EN = P2^1; //test
sbit DIR = P2^2; //test
sbit STEP = P2^3; //test
void InitTimer0(void);
//void zhengzhuan(void);
void InitTimer0(void)
{
TMOD = 0x02; //定时器0方式2,8位计数,自动重载
TH0 = 0xa4 ; //定时100us,脉冲频率10khz,占空比50%
TL0 = 0xa4 ;
ET0 = 1;
EA= 1;
TR0 = 1;
}
void Timer0Interrupt(void) interrupt 1
{
STEP = ~STEP; //翻转
}
/*void zhengzhuan(void)
{
InitTimer0();
} */
void main()
{
EN = 0;
DIR = 0;
STEP = 1;
//zhengzhuan();
InitTimer0();
}
请问程序有问题吗?谢谢 main最后加while(1); 楼上正解,你这是在一直初始化,定时设置呢。。。。 主程序执行完了以后系统还相应中断么?
页:
[1]