v写一段代码,来完成AD采样速率可控。 刚学,很菜,呵呵。 我的想法是通过定时器0的溢出来触发AD转换,但是跑起来采样率明显不对。代码如下: 定义定时器装载初值查找表: uint SapRate[13]={50,84,209,419,836,2089,4178,8356,20890,41780,83560,208900,417800}; 设置定时器0,等待AD中断采样结束: { T0LD = SapRate[12-OrderData][2]]; T0CON = 0xC0;
IRQEN = ADC_BIT; // Enable ADC IRQ Point = 0 ;
while(Point < POINTNUM);
GP4DAT = 0x04040000; //Sampling over , LED turn off
IRQCLR = ADC_BIT; } IRQ中断程序: void IRQ_Handler() __irq { SPoint[Point++]=(ushort)((ADCDAT >>16) & 0x0fff); return ; } 实际运行的时候,T0LD=41780 和 T0LD=417800采样相同点数据的时间差不多,请问哪个地方有问题啊?
|