- 打卡等级:偶尔看看II
- 打卡总天数:25
- 最近打卡:2024-08-29 18:56:53
注册会员
- 积分
- 147
|
发表于 2024-1-13 21:17:31
|
显示全部楼层
P0M0 |= 0xff; //强输出BF 1011 1111 87 1000 0111
P1M0 = 0xff; //强输出 P1M0 = 0xbf; P1.6
P2M0 |= 0xff; //强输出 高4位驱动,低4位遥控输入
P3M0 |= 0xff; //强输出 0100 0000 //
P4M0 |= 0xff; //强输出
void PWM_config(void)
{
P_SW2 |= 0x80; // 访问XFR
PWM2T1 = 0; // 第一个翻转匹配点
PWM3T1 = 0; // 第一个翻转匹配点
PWM4T1 = 0; // 第一个翻转匹配点
PWM5T1 = 0; // 第一个翻转匹配点
// PWM6T1 = 0; // 第一个翻转匹配点
// PWM7T1 = 0; // 第一个翻转匹配点
PWM2T2 = 200; // 第二个翻转匹配点
PWM3T2 = 400; // 第二个翻转匹配点
PWM4T2 = 600; // 第二个翻转匹配点
PWM5T2 = 800; // 第二个翻转匹配点
// PWM6T2 = 1000; // 第二个翻转匹配点
// PWM7T2 = 1200; // 第二个翻转匹配点
// PWMxCR; //7位 6位 5位 4位 3位 2位 1位 0位
// - - - - 管脚选择 允许PWMx中断 允许T2匹配时中断 允许T1匹配时中断
PWM2CR = PWM2_P37; //PWM2_P37 PWM2_P27
PWM3CR = PWM3_P21; //PWM3_P21 PWM3_P45
PWM4CR = PWM4_P22; //PWM4_P22 PWM4_P44
PWM5CR = PWM5_P23; //PWM5_P23 PWM5_P42
// PWM6CR = PWM6_P07; //PWM6_P16 PWM6_P07
// PWM7CR = PWM7_P06; //PWM7_P17 PWM7_P06
PWMCFG = 0x00; //7位 6位 5位 4位 3位 2位 1位 0位
//置0 1-计数器归零触发ADC C7INI C6INI C5INI C4INI C3INI C2INI
// 0-归零时不触发ADC (值为1时上电初始高电平,为0低电平)
P37 = 0;
P3n_push_pull(1<<7); //IO设置为推挽输出, 上电时为高阻
P21 = 0;
P2n_push_pull(1<<1); //IO设置为推挽输出, 上电时为高阻
P22 = 0;
P2n_push_pull(1<<2); //IO设置为推挽输出, 上电时为高阻
P23 = 0;
P2n_push_pull(1<<3); //IO设置为推挽输出, 上电时为高阻
// P06 = 1; //停止PWM时输出高电平
// P0n_push_pull(1<<6); //IO设置为推挽输出, 上电时为高阻
// P07 = 0; //停止PWM时输出低电平
// P0n_push_pull(1<<7); //IO设置为推挽输出, 上电时为高阻
PWMCKS = 0x00; //7位6位5位 4位 3位 2位 1位 0位
// 置0 0-系统时钟分频 分频参数设定
// 1-定时器2溢出 时钟=系统时钟/([3:0]+1)
PWMIF = 0x00; //7位 6位 5位 4位 3位 2位 1位 0位
//置0 计数器归零中断标志 相应PWM端口中断标志
PWMFDCR = 0x00; //7位 6位 5位 4位
//置0 置0 外部异常检测开关 外部异常时0-无反应 1-高阻状态
//3位 2位 1位 0位
//PWM异常中断 比较器与异常的关系 P2.4与异常的关系 PWM异常标志
PWMC = 2000; // PWM计数器周期
PWMCR = 0x80+0x0f; // 7位 6位 5位 4位 3位 2位 1位 0位
//ENPWM ECBI ENC7O ENC6O ENC5O ENC4O ENC3O ENC2O
//PWM开关 计数归零中断开关 相应I/O为GPIO模式(0)或PWM模式(1)
// PWMFDCR = ENFD | FLTFLIO | FDIO; //PWM失效中断控制, ENFD | FLTFLIO | EFDI | FDCMP | FDIO
}
|
|