打印
[应用方案]

初始化MCU外设

[复制链接]
129|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
突然下起雨|  楼主 | 2025-3-28 09:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCU, PWM, AD, ADC, dc
初始化MCU外设
设置PWM用于电机控制,ADC用于速度反馈读取

c
复制
编辑
#include "N76E003.h"

#define PWM_DUTY_MAX 255  // 最大PWM占空比
#define TARGET_SPEED 100  // 目标转速

volatile int16_t speed_feedback = 0;  // 速度反馈
volatile int16_t pwm_output = 0;      // PWM输出

void init_PWM(void) {
    PWM2_P12_OUTPUT_ENABLE;   // PWM通道2输出到P1.2
    PWM_IMDEPENDENT_MODE;     // 独立模式
    PWM_CLOCK_DIV_8;          // 设置PWM时钟分频
    PWMPH = 0x03;             // 设置PWM周期
    PWMPL = 0xE8;
    PWM2H = 0x01;             // 设置初始占空比
    PWM2L = 0xF4;
    set_PWM2;                 // 启动PWM
}

void init_ADC(void) {
    ENABLE_ADC_AIN0;          // 启用AIN0(P0.0)为ADC输入
    ADCCON1 |= 0x30;          // 设置ADC时钟
    set_ADCEN;                // 启用ADC
}

uint16_t read_ADC(void) {
    clr_ADCF;                 // 清除ADC完成标志
    set_ADCS;                 // 启动ADC转换
    while(ADCF == 0);         // 等待转换完成
    return (ADCRH << 4) | ADCRL;  // 读取ADC结果
}

使用特权

评论回复
沙发
heisexingqisi| | 2025-3-28 15:15 | 只看该作者
只能寄存器操作,学习成本有点高

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

384

帖子

1

粉丝