ADIF软件清零的 *** 作为:ADCSRA |= BIT(ADIF)
简单点,建立32位变量A,每采样一次就加到A,采样完8次再除以8就好了,u16 ADC_ZKB(u8 Channel)
{
u32 value1=0
u16 value
u8 i
for(i=0i<8i++)
{
ADC_CSR = Channel &0x0F // 选择AD转换通道
ADC_CR1 |= 0x01 // 启动AD转换
while(!(ADC_CSR &0x80))// 等待AD转换完成
value = ADC_DRL
value |=((ADC_DRH<<8)&0X0300)
value1+=value
ADC_CSR = 0x00
}
return (value1/8)
}
大概这意思,怎么定义32位数,这个自己去查,因为AD采样时间比较久,估计这样FOR可能不合适,自己可以改改。
我做的和你的基本一样 其实28335和2812基本差不多 只是多了个浮点功能 在28335中 EPWM模块用于生成PWM波 每次只要对比较寄存器进行赋值就可以了 其他的设置和2812是一样的 建议你看一些28335的例程 至于AD采样 你可以用EPWM模块来触发 也可以通过外部引脚触发 先将电流信号转换成电压信号 注意:这个电压信号要在0--3V范围之内 然后DSP就可以对其进行读数了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)