深山老妖 发表于 2024-10-10 12:51:45

哪里有AI8051U的PWM同步触发ADC采样的例程

AI8051U的芯片,PWM可以通过DMA去完成,如何做到PWM触发ADC采样?想做三相逆变电源,需要三个采样电流,三路采集电压,其中电流需要用PWM触发功能去采集,想做成60K的载波频率,三相50HZ输出,不知道此芯片能不能满足。

DebugLab 发表于 2024-10-10 13:00:36

#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;
    }
}


深山老妖 发表于 2024-10-10 14:50:39

DebugLab 发表于 2024-10-10 13:00
#include “Ai8051U.H” //头文件见下载软件
#include "intrins.h"
void delay()


先学习一下,谢谢!。

蓝鹰 发表于 2025-1-1 18:03:27

学习一下!
页: [1]
查看完整版本: 哪里有AI8051U的PWM同步触发ADC采样的例程