Thread 中讨论的其他器件:controlSUITE、 C2000WARE
您好!
我尝试使用 ADC 来读取特定的电压。 已设置的 ADC 如下:
void HAL_setupAdcs (HAL_Handle handle) { HAL_Obj * obj =(HAL_Obj *) handle; //禁用 ADC ADC_disable (obj->adcHandle); //打开带隙电路 ADC_enableGap (obj->adcHandle); //设置 ADC 电压基准源以启用 ADC_enableHandle- adc ( adc);/adcs_enable_enable_enable_adc (adcs_enc);/adcs_enc (enable_adcs_enc (enable_enable_adcs_enc) //将 ADC 中断脉冲生成设置为先前 的 ADC_setIntPulseGenMode (obj->adcHandle、ADC_IntPulseGenMode_Prior); //将温度传感器源设置为外部 ADC_setTempSensorSockc (obj->adcHandle、ADC_Sprobj SensorSrc_Ext); //将 ADC_Int 1、ADC_Sock1 、ADC_Int 1、ADC_Sock1、ADC_Sock1、ADC_Sock1、ADC_Sock1、ADC_Sock1、ADC_Sock1、ADC_Sock1; ADC_setSockTrigSrc (obj->adcHandle、ADC_SockNumber_1、ADC_SockTrigSrc_EPWM1_ADCSOCA); ADC_setSockSampleDelay (obj->adcHandle、ADC_SockNumber_1、ADC_SockSampleDelay_7_cycles); // Isen_B ADC_setSockChanNumber (obj->SockHandle、ADC_SockNumber_2、ADC_SocksenspleNumber_B3); ADC_SocksensHandle_7、ADC_Socksocksense2;ADC_Socks_sensore2;ADC_Sinc_Socksense2 ;ADC_Sinc_Socksensore2;ADC_Socksensore_Socksensore2;ADC_Socksensore2 ADC_setSockTrigSrc (obj->adcHandle、ADC_SockNumber_3、ADC_SockTrigSrc_EPWM1_ADCSOCA); ADC_setSockSsSampleDelay (obj->adcHandle、ADC_SockSinc数目_3、ADC_Sockspleay_7_cycles); // VsSocSockSockSockSocks数目 4 、ADC_SockSockse_4、ADC_Socksense4、ADC_Socksense1、ADC_Socksense1、ADC_Delay_4、ADC_Socksocksense1、ADC_Socksinc_Delay_4、ADC_Socksense1 // VSEN_B ADC_setSockChanNumber (obj->adcHandle、ADC_SockNumber_5、ADC_SockChanNumber_A3); ADC_setSockTrigSrc (obj->adcHandle、ADC_SockNumber_5、ADC_SockTrigSrc_EPWM1_ADCSRD_ ;ADC_setSock_Sock_Sockse_Sockse_Socksockse_Sockse_Sockse_5、ADC_Socksocksocksocksinc_Socksinc_Sockse_Sockse_Socksinc_Sockse_Sockse_Socksinc_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Socksinc_Sinc_Sockse_Socksinc_Sockse_Sockse_Sockse_Sockse_Socksinc_Socks ADC_setSockspleDelay (obj->adcHandle、ADC_SockNumber_6、ADC_SockspleDelay_7_cycles); // V_PVDD ADC_setSockSincNumber (obj->SocksocksocksHandle、ADC_SocksensNumber_7、ADC_SocksocksocksensHandle_7 、ADC_Socksocksocksensore_Socksensore_7、ADC_Socksocksocksensore_Socksocksensoreet (obj_7);ADC_Socks_socksocksocksocksocksocksensore_sockset_ad_7、ADC_socksocksensore_socksensore_sensore_socksocksensore7、ADC_socksocksocksocksensore7、ADC_socksocksocksensore_socksensoreet (ad_ad_ad_ad_ad_adsensore7、ADC_sens ADC_SockTrigSrc_EPWM1_ADCSOCA);//set SOC0 start trigger on EPWM1A、due to roundin SOC0 concles first then SOC1 ADC_setSockTrigSockc (obj->adcHandle、ADC_SockTrigSrc_9、ADC_EPWM1_EPSOC0先转换 SOC0、然后在 SOC01_Socksocksule_Sock3、ADC0、ADCK_socksocksock1以设置 ADC0、ADCK_socksocksocksocksocksockse_sockse_sockse_sockse_socksockse_sockse_se_sockse_sockse_socks //将 SOC0 S/H 窗口设置为7个 ADC 时钟周期、(6个 ACQPS 加1) ADC_setSockspleDelay (obj->adcHandle、ADC_SockNumber_9、ADC_SockspleDelay;(6个 ACQPS 加9、ADC_SocksockspleDelay;7个 ADC_Socksocksenseet);//设置 SOC1 S/H 窗口为7 个 ADC_Socksensore+、ADC_Socksense+(ADC_Socks_sense+) ;(ADC_Socks_sense1、ADC_Socksocksense+);ADC_Socksocksocksenseet (设置 ADC_tire+ ADC_tore+ ADC_tore+ ADC_sense+ ADC_socksense+ ADC_socksense+ ADCK_8) ;ADC_s_sense+ ADCsocksocksocksocksense+ ADC_socksocksocksense+ ADC_sens
在主代码中、我创建了一个中断、使用从 ADC 示例中获得的以下函数来获得 ADC 上的电压计数:
_interrupt void ADC_ISR (void) { //将 ADCRESULT0作为修订版0第一个样本勘误表权变措施的一部分丢弃 Voltage1[ConversionCount]= ADC_readResult (myAdc、ADC_ResultNumber_8); Voltage2[ConversionCount]= ADC_readResult (myAdc、ADC_ResultNumber_9); //如果记录了10次转换,则重新开始 if (ConversionCount = 9) { ConversionCount = 0; } 其他 { ConversionCount++; } //清除 ADCINT1标志为下一个 SOC 重新初始化 ADC_clearIntFlag (myAdc、ADC_IntNumber_1); //确认 PIE 中断 PI_clearInt (myPie、PI_GroupNumber_10); 返回; }
我将获得一些高于4096的随机值,该值应介于0-3.3V 之间。我的 ADC 引脚上的电压几乎为1V。
我有一个电机驱动器8305、将28027用作控制器。
我不确定这是否是设置 ADC 的正确方法、但如果可能的话、如果有人在设置 ADC、可以参考文档。
此致、
Rajan Joshi