猪啊朱 发表于 2023-8-3 12:16:58

kkkk题

stc32g如何通过max9814麦克风模块进行环境音数据采集和保存,应该是需要用到内部ADC


电子DIY小家 发表于 2023-8-3 12:50:14

对的,adc采

梁工 发表于 2023-8-3 13:52:37

MAX9814放大输出,电容隔直后送ADC,ADC用两个电阻做1/2 VDD偏置。

猪啊朱 发表于 2023-8-3 14:34:07

梁工 发表于 2023-8-3 13:52
MAX9814放大输出,电容隔直后送ADC,ADC用两个电阻做1/2 VDD偏置。

void Adc_SetRate(void)                //400Kbps@24.000MHz
{
        ADCCFG &= ~0x0f;                //SPEED(0)
        ADCTIM = 0x2e;                        //CSSETUP(0), CSHOLD(1), SMPDUTY(14)
    ADC_CONTR = 0x83;   //使能 ADC 模块P13高阻
}       
主循环查询adc值
   if(B_1ms)   //1ms到
      {
            B_1ms = 0;
                       if(++cnt200ms >= 200)   //200ms读一次ADC
            {   a++;
                cnt200ms = 0;
                Get_ADC12bitResult(3);
                Get_ADC12bitResult(3);
                ADc_res = Get_ADC12bitResult(3);//参数0~15,查询方式做一次ADC, 返回值就是结果, == 4096 为错误
                                ADc_res = ADc_res*2.5*1000 /4096;// 转换电压
                               
                        }


我拿直流电源输出2v电压给adc转换,怎么结果不对显示18662

梁工 发表于 2023-8-3 14:46:39

猪啊朱 发表于 2023-8-3 14:34
void Adc_SetRate(void)                //400Kbps@24.000MHz
{
        ADCCFG &= ~0x0f;                //SPEED(0)


你的ACC_REF电压多少V?

猪啊朱 发表于 2023-8-3 14:53:21

梁工 发表于 2023-8-3 14:46
你的ACC_REF电压多少V?

2.5呀,屠龙刀自带的吧,什么都没改

梁工 发表于 2023-8-3 18:17:28

猪啊朱 发表于 2023-8-3 14:53
2.5呀,屠龙刀自带的吧,什么都没改

ADC度数 = 4096 * 输入电压值 / 基准电压= 4096 * 输入电压值 / 2.5。

猪啊朱 发表于 2023-8-4 22:03:06

梁工 发表于 2023-8-3 18:17
ADC度数 = 4096 * 输入电压值 / 基准电压= 4096 * 输入电压值 / 2.5。

我现在需要输出两路pwm,一路固定输出50hz,l另一路根据我所得的频率数据输出pwm,我要怎么配置啊,求程序

神农鼎 发表于 2023-8-4 22:26:43

没有暂空比的要求,就用定时器的分频输出功能,
T0CLKO, T1CLKO, T2CLKO, T3CLKO, T4CLKO




如有占空比的要求,就用PWM


梁工 发表于 2023-8-4 23:53:44

猪啊朱 发表于 2023-8-4 22:03
我现在需要输出两路pwm,一路固定输出50hz,l另一路根据我所得的频率数据输出pwm,我要怎么配置啊,求程序
...

另一路根据所得的频率数据输出pwm,是控制占空比吗?
页: [1] 2
查看完整版本: kkkk题