- 打卡等级:偶尔看看III
- 打卡总天数:51
- 最近打卡:2025-05-02 10:07:51
超级版主
- 积分
- 12081
|
发表于 2024-3-27 16:38:27
|
显示全部楼层
本帖最后由 梁工 于 2024-3-27 16:54 编辑
随意,P2.1输出PWM,P2.0做IO。
主函数:
void main(void)
{
u16 i;
WTST = 0;
CKCON = 0;
P_SW2 |= 0x80; //SFR enable
PWMA_config();
P2M0 = 0;
P2M1 = 0;
while (1)
{
for(i=0; i<100; i++)
{
NOP(10);
}
P20 = ~P20;
}
}
我只是禁止掉P2.0输出PWM,其余P2.1~P2.7继续输出PWM。
PWMA_CCMR1 = 0x68; // 通道模式配置, PWM模式1, 预装载允许
PWMA_CCR1H = 400/256; // 比较值, 控制占空比(高电平时钟数)
PWMA_CCR1L = 400%256;
ccer1 |= 0x05; // 开启比较输出, 高电平有效
ps |= 1; // 选择IO, 0:选择P1.0 P1.1, 1:选择P2.0 P2.1, 2:选择P6.0 P6.1,
// eno |= 0x03; // IO输出允许, bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P, bit3: ENO2N, bit2: ENO2P, bit1: ENO1N, bit0: ENO1P
eno |= 0x02; // IO输出允许, bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P, bit3: ENO2N, bit2: ENO2P, bit1: ENO1N, bit0: ENO1P
// PWMA_ISR_En|= 0x02; // 使能中断
下面就是示波器波形,蓝色的是P2.1输出PWM,黄色是P2.0在主程序取反输出。
01A-PWMA-4对互补PWM输出P2口.rar
(49.91 KB, 下载次数: 86)
|
|