BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10005同步于 2010/12/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

帮忙解释一段DSP的AD程序

shenshendi
2010/12/19镜像同步1 回复
// 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]
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
shenshendi机器人#1 · 2010/12/26
????????????