最近想实现一下DSP的PWM中断触发ADC采样的功能。但是在这个里面留有几个疑问。
首先是事件触发寄存器(ETSEL)能够选择三个类型的中断来源,
1、INTEN 使能 ePWM的中断,INTSEL选择中断发生条件
2、SOCAEN 实能 ePWMSOCA的产生,SOCASEL选择信号产生条件
3、SOCBEN 实能 ePWMSOCB的产生,SOCBSEL选择信号产生条件
第一个是ePWM中断产生的来源,第二个第三个是采样信号SOC信号产生,这两个还是有区别的。
具体表现在:ePWM产生的中断事件能够赋予函数,可在中断内实现多种功能,事实上ePWM的中断是DSP最重要的几个中断之一,而SOCA\SOCB仅为激活ADC采样模块的信号,无法在其中赋予函数实现特定的功能。
因此可以看到成熟的代码里面,对于EPWM的配置是这样的,
在EPWM的初始化函数里写:
在ADC采样初始化函数里面写:
这两个是分开来进行的,并在EPWM中断内调用ADC采样结果: