|
|
PWMA初始化代码如下:
//关闭通道CCxE
AsmCode.saveInto08AsmCode(0x00,0x7EFECC);
AsmCode.saveInto08AsmCode(0x00,0x7EFECD);
//配置输出模式PWMx_CCMRn
AsmCode.saveInto08AsmCode(0x60,0x7EFEC8);
AsmCode.saveInto08AsmCode(0x60,0x7EFEC9);
AsmCode.saveInto08AsmCode(0x60,0x7EFECA);
AsmCode.saveInto08AsmCode(0x60,0x7EFECB);
//配置通道使能极性PWMx_CCER
AsmCode.saveInto08AsmCode(0x55,0x7EFECC);
AsmCode.saveInto08AsmCode(0x55,0x7EFECD);
//开启预转载PWMx_CCMRn.OCxPE
AsmCode.saveInto08AsmCode(0x68,0x7EFEC8);
AsmCode.saveInto08AsmCode(0x68,0x7EFEC9);
AsmCode.saveInto08AsmCode(0x68,0x7EFECA);
AsmCode.saveInto08AsmCode(0x68,0x7EFECB);
//PWM预分频PWMx_PSCR
AsmCode.saveInto08AsmCode(0x00,0x7EFED0);
AsmCode.saveInto08AsmCode(0xFF,0x7EFED1);
//计数器重载值PWMx_ARR
AsmCode.saveInto08AsmCode(0xF0,0x7EFED2);
AsmCode.saveInto08AsmCode(0xFF,0x7EFED3);
//使能输出PWMx_ENO
AsmCode.saveInto08AsmCode(0xFF,0x7EFEB1);
//通道输出脚选择位
AsmCode.saveInto08AsmCode(0xAA,0x7EFEB2);
//引脚口设置为准双向口
AsmCode.executeAsmCode("ANL P6M0,#0x00");
AsmCode.executeAsmCode("ANL P6M1,#0x00");
//使能主输出PWMx_BKR
AsmCode.saveInto08AsmCode(0x80,0x7EFEDD);
//使能ARR预装载
AsmCode.saveInto08AsmCode(0x81,0x7EFEC0);
通过设置大的计数器重载值0xF0FF,让LED有闪烁的效果
说明:
AsmCode.saveInto08AsmCode(0x81,0x7EFEC0):将0x81送入0x7EFEC0地址中
AsmCode.executeAsmCode("ANL P6M1,#0x00"):将ANL P6M1,#0x00嵌入到yxra语言中编译
实验箱显示结果:
LED灯不闪烁,根据LED的亮灭,p6应该是0xAA
请问是什么原因?
可视化配置如下:
|
-
|