- 打卡等级:以坛为家II
- 打卡总天数:458
- 最近打卡:2025-05-01 07:48:22
已绑定手机 已实名认证
版主
- 积分
- 5452
|
发表于 2025-3-8 14:39:18
|
显示全部楼层
void Io_Init(void)
{
P0M1 = 0xff; // P00:高阻 P01:高阻 P02:高阻 P03:高阻
P0M0 = 0x00; // P04:高阻 P05:高阻 P06:高阻 P07:高阻
P1M1 = 0xff; // P10:高阻 P11:高阻 P12:高阻 P13:高阻
P1M0 = 0x00; // P14:高阻 P15:高阻 P16:高阻 P17:高阻
P2M1 = 0x00; // P20:推挽 P21:推挽 P22:推挽 P23:推挽
P2M0 = 0xff; // P24:推挽 P25:推挽 P26:推挽 P27:推挽
P3M1 = 0xff; // P30:高阻 P31:高阻 P32:高阻 P33:高阻
P3M0 = 0x00; // P34:高阻 P35:高阻 P36:高阻 P37:高阻
P4M1 = 0xff; // P40:高阻 P41:高阻 P42:高阻 P43:高阻
P4M0 = 0x00; // P44:高阻 P45:高阻 P46:高阻 P47:高阻
P5M1 = 0xff; // P50:高阻 P51:高阻 P52:高阻 P53:高阻
P5M0 = 0x00; // P54:高阻 P55:高阻 P56:高阻 P57:高阻
}
void Pwm_Init(void)
{
EAXFR = 1; //扩展寄存器(XFR)访问使能
PWMA_PS = 0x11;//设置PWMA的引脚切换
PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
PWMA_CCER2 = 0x00;
PWMA_CCMR1 = 0x60;
PWMA_CCMR3 = 0x60;
PWMA_CCER1 = 0x01;
PWMA_CCER2 = 0x01;
PWMA_CCMR1 = 0x68;
PWMA_CCMR3 = 0x68;
PWMA_PSCRH = 0x01;
PWMA_PSCRL = 0x6e;
PWMA_ARRH = 0xff;
PWMA_ARRL = 0x73;
PWMA_CCR1H = 0x7f;
PWMA_CCR1L = 0xba;
PWMA_CCR3H = 0xe5;
PWMA_CCR3L = 0xe8;
PWMA_ENO = 0x11;//设置PWMA的输出使能
PWMA_BKR = 0x80; //使能主输出
PWMA_CR1 = 0x81; //使能ARR预装载,开始计时
}
void UpdatePwm(unsigned char num, unsigned int duty)
{
if(num<=3&&duty>65395)return;// dutya不可以超过65395
if(num>=4&&duty>0)return;// dutyb不可以超过0
switch (num)
{
case 1:
PWMA_CCR1H = (unsigned char)(duty >> 8); // 设置占空比时间
PWMA_CCR1L = (unsigned char)(duty);
break;
case 3:
PWMA_CCR3H = (unsigned char)(duty >> 8); // 设置占空比时间
PWMA_CCR3L = (unsigned char)(duty);
break;
default:
break;
}
}
|
|