返回信息流// ADC start parameters
#define ADC_MODCLK 0x4 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*4) = 12,5MHz
#define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 12,5MHz/(1*2) = 6.25MHz
#define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks
#define AVG 1000 // Average sample limit
#define ZOFFSET 0x00 // Average Zero offset
#define BUF_SIZE 2048 // Sample buffer size
// Global variable for this example
Uint16 SampleTable[BUF_SIZE],Voltage;
main()
{
Uint16 i;
// Clear SampleTable
for (i=0; i<BUF_SIZE; i++)
{
SampleTable[i] = 0;
}
// Start SEQ1
AdcRegs.ADCTRL2.all = 0x2000;
// Take ADC data and log the in SampleTable array
for(;;)
{
for (i=0; i<AVG; i++)
{
while (AdcRegs.ADCST.bit.INT_SEQ1== 0) {} // Wait for interrupt
// Software wait = (HISPCP*2) * (ADCCLKPS*2) * (CPS+1) cycles
// = (3*2) * (1*2) * (0+1) = 12 cycles
asm(" RPT #11 || NOP");
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
SampleTable[i] =((AdcRegs.ADCRESULT15>>4) );
Voltage = (SampleTable[i]*3000)>>12; //单位毫伏
}
}
}
请教宏定义的 1000和2048这两个数是不是 采样完成后,用掉了2048中的1000个,这样会不会太浪费。
[em9][em9][em9]
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10005同步于 2010/12/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
帮忙解释一段DSP的AD程序
shenshendi
2010/12/19镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复