初始化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结果
}
|