[应用方案] 初始化MCU外设

[复制链接]
670|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 | 显示全部楼层
只能寄存器操作,学习成本有点高
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

531

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部