哪里有AI8051U的PWM同步触发ADC采样的例程
AI8051U的芯片,PWM可以通过DMA去完成,如何做到PWM触发ADC采样?想做三相逆变电源,需要三个采样电流,三路采集电压,其中电流需要用PWM触发功能去采集,想做成60K的载波频率,三相50HZ输出,不知道此芯片能不能满足。#include “Ai8051U.H” //头文件见下载软件
#include "intrins.h"
void delay()
{
int i;
for (i=0; i<100; i++);
}
void main()
{
P_SW2 = 0X80; //使能访问 XFR,没有冲突不用关闭
CKCON = 0x00; //设置外部数据总线速度为最快
WTST = 0x00; //设置程序代码等待参数,
//赋值为 0 可将 CPU 执行程序的速度设置为最快
P1M0 = 0x00;
P1M1 = 0x01;
P3M0 = 0x00;
P3M1 = 0x00;
ADC_CONTR = 0; //选择 P1.0 为 ADC 输入通道
ADC_POWER = 1;
ADC_EPWMT = 1;
delay(); //等待 ADC 电源稳定
EADC = 1;
PWMA_CR2 = 0x20; //周期更新事件为 TRGO,用于周期触发 ADC
PWMA_ARRH = 0x13;
PWMA_ARRL = 0x38;
PWMA_IER = 0x01;
PWMA_CR1 = 0x01; //设置 CEN 启动 PWMA 定时器
EA = 1;
while (1);
}
void ADC_ISR() interrupt 5
{
ADC_ FLAG = 0;
}
void PWMA_ISR() interrupt 26
{
if(PWMA_SR1 & 0x01)
{
PWMA_SR1 &=~0x01;
}
}
DebugLab 发表于 2024-10-10 13:00
#include “Ai8051U.H” //头文件见下载软件
#include "intrins.h"
void delay()
先学习一下,谢谢!。 学习一下!
页:
[1]