- 打卡等级:偶尔看看III
- 打卡总天数:50
- 最近打卡:2025-04-30 22:59:03
超级版主
- 积分
- 12073
|
发表于 2023-5-6 16:29:15
|
显示全部楼层
初始化程序,是移植(拷贝)过来的,初始化时,随便选一个通道都可以,因为这时候并没有启动ADC,所以选择哪个输入口都没关系,通常是选择0:
ADC_CONTR = 0x80; //ADC on
实际做ADC的时候,请看换相函数或主函数:
启动电机后,在换相函数的case 4中的Get_ADC10bitResult(11)就是读取电位器的:
case 4: // CA PWM3, PWM1_L=1
PWMA_ENO = 0x00; PWM2_L=0; PWM3_L=0;
Delay_500ns();
PWMA_ENO = 0x10; // 打开C相的高端PWM
PWM1_L = 1; // 打开A相的低端
adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);
ADC_CONTR = 0x80+9; // 选择P0.1作为ADC输入 即B相电压
CMPCR1 = 0x8c + 0x10; //比较器下降沿中断
break;
电机停转后,在主函数倒数第4行代码读电位器ADC:
else
{
adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);
}
j = adc11;
if(j != adc11) j = adc11;
PWW_Set = (u8)(j >> 5); //油门是8位的
}
}
} |
|