手头上有一个11个INPUT的8位串口输出的A/D转换芯片,在其某个输入端接上电位器作为输入源,要求输出一个周期自己定义,但是占空比大小要随着电位器调节而变化的脉冲信号,要在示波器上演示.我自己的编写程序的思路比较简单,看下下面的主程序清单:
while(1)
{ ADRead(0,&tmp); Interval = tmp<<2;//左移两位乘四 PortWrite(0,Uptime);}
void timer0(void) interrupt 1 { TR0=0; //stop timer0 TH0=0xf2; //@ 40.32mhz,1ms cycle TL0=0xe0; TimerMeter++; if (TimerMeter<Interval) { Uptime = 1; TR0=1; return; } else { Uptime = 0; if( TimerMeter >= 1024 )//一个输出波形的周期为1.024s TimerMeter=0; //1秒钟进入一次 TimeToReset++; } TR0=1; }
主循环所做的就是ADREAD()读AD结果,并对输出的端口置数,定时器设置为1MS,通过INTERVAL与TIMERMETER比较不断对端口置数,也就是对UPTIME置0或者置1,硬件的驱动是已经写好的,应该不存在问题,但是今天把程序刷到板子上之后用示波器缺看不到有信号,请高手指点下可能存在的问题,谢谢
|