c8051f的pca
本帖最后由 chuandaoxy 于 2021-7-15 10:29 编辑用c8051f410做pwm输出,用的pca,t0作时基,不加最后一句,输出是正常的设定频率,加上频率就变了
不加最后一句,输出频率虽然正确,但是,不到一分钟,输出就消失了,大家分析一下哪里的问题
PCA0CN = 0x40;
PCA0MD&= ~0x40;
PCA0MD |= 0x05;
PCA0CPM0= 0xC3;
PCA0CPM1= 0x11;
PCA0CPL5= 0x00;
PCA0MD |= 0x40;
timer0中断的优先级和pca的中断优先级,如何设定?
PCA0MD |= 0x40;
你这是看了WDT,要喂狗,否则会导致系统复位的 本帖最后由 chuandaoxy 于 2021-7-15 13:30 编辑
这个解释可以理解,,但是为什莫把狗打开pwm的输出频率会该改变使用原厂的demo没有停止输出的问题,我只是加入了捕捉PCA0CPM1= 0x11;原厂是下面这样写的,跑了20分钟都正常
加入捕捉,2分钟就停止输出了
PCA0CN = 0x00; // Stop counter; clear all flags
PCA0MD = 0x04; // Use SYSCLK as time base
PCA0CPM0 = 0xCB; // Module 0 = 16-bit PWM mode and
// enable Module 0 Match and Interrupt
// Flags
// PCA0CPM1= 0x11; 出问题的地方
CEX0_Compare_Value = 65536 - (65536 * 0.9);
PCA0CPL0 = (CEX0_Compare_Value & 0x00FF);
PCA0CPH0 = (CEX0_Compare_Value & 0xFF00)>>8;
EIE1 |= 0x10; // Enable PCA interrupts
CR = 1;
pca与狗共用,应该是有些冲突的,可能不能共用,看手册说明 打开看门狗频率为什么会改变,活儿多,干不过来了呗。。。。 我认为具体要看手册的说明,可能内部确实共用了。
页:
[1]