请教 各路高手,我是新手,利用pic18F2550 usb单片机 实现了一个数据采集固件。
我希望用pic18F2550 单片机 实现一个采集速度比较高的数据采集固件。按手册设定了最快的数据采集状态,大约15us 可得到一个采集数据。
外部晶振 20MHz,寄存器按手册设定了最快的数据采集状态,但实际结果 要 0.5ms 才能得到一个采集数据。
想得到更快的速度,请教大侠,该如何修改代码。谢谢啦。
我的代码如下:请大侠指正。
char DataBuf[1024];
main()
/* 首先是ADC 三个功能寄存器的设定。 */
ADCON0 = Ob00000001; // 选择AN0 通道,使能DAC模块
ADCON1 = 0b00001101; // 设定ADC 通道,只有 AN0,AN1 为模拟输入通道
ADCON2 = 0b10100101; // 对齐方式:右对齐, 采集时间:8个Tad,转换时钟:Fosc/16
for(i=0;i<512;i++)
{
ADCON0bits.GO=1; //启动A/D转换
while(ADCON0bits.GO == 1) //等待转换结束,GO为0则AD转换结束,查询GO/DONE 位是否被清零,
{
;
}
DataBuf[2*i] =ADRESH;
DataBuf[2*i+1]=ADRESL;
}
} |