DSP28335 PWM AD转换程序示例

5星 · 超过95%的资源 需积分: 9 32 下载量 81 浏览量 更新于2024-09-18 收藏 7KB TXT 举报
"这是一个使用DSP28335微控制器实现的PWM与AD转换的经典程序,适合于学习和参考。" 该程序的核心是实现了一个16位定时器(可能是T0)驱动的AD转换器,以及相关的PWM功能。在16位定时器中断服务例程中,AD转换的结果被处理并存储。程序结构清晰,包含必要的初始化函数和中断服务函数。 首先,定义了一些全局变量: - LoopCount:用于空闲循环计数。 - ConversionCount:当前AD转换结果的计数器。 - Voltage1和Voltage2:两个1024长度的数组,用于存储最近的AD转换结果。 ADC_MODCLK常量被设置为0x3,这意味着模数时钟(ADC_MODCLK)配置为系统时钟(SYSCLKOUT)的二分之一乘以3,即25.0MHz。这样的配置确保了适当的采样率。 `InitAdc()`函数负责初始化AD转换器,可能包括配置AD转换器的采样率、通道选择、分辨率等参数。而`InitEPwm1Example()`函数则初始化EPWM1模块,这通常涉及到设置PWM的周期、占空比、边沿对齐模式等。 中断服务函数`epwm1_timer_isr()`处理16位定时器中断事件,可能在这里触发AD转换,并更新计数器`EPwm1TimerIntCount`。中断服务例程是实时系统中的关键部分,确保在正确的时间执行AD转换和PWM更新。 主函数`main()`中,初始化了系统控制、GPIO和中断控制器,然后清除了中断标志,设置了中断向量表。值得注意的是,虽然这里没有显示具体的中断向量设置,但在实际应用中,`adc_isr`应该被配置为ADC中断服务例程的地址。 在中断向量表中,`PieVectTable.ADCINT`通常会指向`adc_isr`函数,这是当AD转换完成时触发的中断处理程序。`EPWMPieVect`可能被设置为PWM中断的处理程序。 这个程序展示了如何在TI的DSP28335芯片上结合AD转换和PWM功能进行实时数据采集和信号控制。对于想要了解微控制器中AD转换和PWM操作的人来说,这是一个有价值的参考资料。