高速PWM ,通道3,组合PWM模式1和2都不行,其他不对称也可以
<p>高速PWM ,通道3,组合PWM模式1和2都不行,其他不对称也可以。AI8H2K17U</p><p>void PWM_Config(void)<br />
{<br />
//高速设置</p>
<pre><code>CLKSEL |= 0x80; //内部PLL输出时钟选择, |=0x80: 选择PLL 144MHz, &=~0x80: 选择96MHz(默认)
USBCLK= (USBCLK &~0x60) | (1<<5); //选择PLL输入时钟分频,保证输入时钟为12M, 0: 1分频(对应12MHz), 1: 2分频(对应24MHz), 2: 4分频(对应48MHz), 3: 8分频(对应96MHz)
USBCLK |= 0x80; //PLL倍频控制, |=0x80: 使能PLL倍频. &= ~0x80: 禁止PLL倍频
delay(); //等待PLL锁频
CLKSEL |= 0x40; //高速IO时钟源选择, |=0x40: 选择PLLCLK,&=~0x40: 选择MCLK(默认)
HSCLKDIV = 0; //不分频
</code></pre>
<p>//pwm设置<br />
HSPWMA_CFG = 0X03;//新增的移相寄存器使用间接定址访问前需要设置新增的使能位(bit4)<br />
WritePWMA((u8)&PWMA_ENO, 0x00); // IO输出禁止<br />
WritePWMA((u8)&PWMA_IER, 0x00); // 禁止中断<br />
WritePWMA((u8)&PWMA_SR1, 0x00); // 清除状态<br />
WritePWMA((u8)&PWMA_SR2, 0x00); // 清除状态</p>
<pre><code> //通过异步方式设置PWMA的相关寄存器
WritePWMA((u8)&PWMA_PSCRH, 0x00);
WritePWMA((u8)&PWMA_PSCRL, 0x00);
// WritePWMA((u8)&PWMA_DTR, 72); // 死区时间配置, n=0~127: DTR= n T, 0x80 ~(0x80+n), n=0~63: DTR=(64+n)*2T,
WritePWMA((u8)&PWMA_CCER1, 0x00);//写 CCMRx 前必须先清零 CCxE 关闭通道
WritePWMA((u8)&PWMA_CCER2, 0x00);
WritePWMA((u8)&PWMA_CCMR1X, 0x00);//通道1:PWM1模式
WritePWMA((u8)&PWMA_CCMR1, 0x60);
WritePWMA((u8)&PWMA_CCMR3X, 0x01);//通道3:组合PWM2模式
WritePWMA((u8)&PWMA_CCMR3, 0x50);
WritePWMA((u8)&PWMA_CCMR4X, 0x00);//通道4:PWM1模式
WritePWMA((u8)&PWMA_CCMR4, 0x60);
WritePWMA((u8)&PWMA_CCER1, 0x55);//配置通道输出使能和极性55 N
WritePWMA((u8)&PWMA_CCER2, 0x55);
PWM_PERIOD = 1000; //设置周期值
</code></pre>
<p>// WritePWMA((u8)&PWMA_ENO, 0x00);//使能输出<br />
WritePWMA((u8)&PWMA_ENO, 0x12);<br />
WritePWMA((u8)&PWMA_BKR, 0x80); //使能主输出<br />
WritePWMA((u8)&PWMA_CR1, 0x01); //使能ARR预装载,开始PWM计<br />
// WritePWMA((u8)&PWMA_EGR, 0x01 );//设置输出PWM的周期</p>
<p>}</p>
不行是有哪些异常? DebugLab 发表于 2024-12-25 09:35
不行是有哪些异常?
组合1 出高,组合2出低,不高速异步的话,这个测试是正常的 qfmir 发表于 2024-12-25 09:41
组合1 出高,组合2出低,不高速异步的话,这个测试是正常的
高速模式要异步读写寄存器
DebugLab 发表于 2024-12-25 09:47
高速模式要异步读写寄存器
不是编译不过啊,是执行结果不对啊
函数有的啊
void WritePWMA( char addr,char dat )
{
while(HSPWMA_ADR & 0X80);
HSPWMA_DAT = dat;
HSPWMA_ADR = addr & 0x7f;
} qfmir 发表于 2024-12-25 09:57
不是编译不过啊,是执行结果不对啊
函数有的啊
看起来没什么问题,我也不知道什么原因了
页:
[1]