引用: 晨彦 发表于 2017-7-27 23:16
比如代码是这样的
假设你设置的是以TGRA作为一个周期,TGRB设置为initial output of MTIOC0C pin is 1. toggle output at compare match.1 at output counter clear,那么你改变TGRB的值就可以改变占空比了,比如这里MTU0.TGRA = 9C40,十进制为40000,你改变MTU0.TGRB的值,将80E8(十进制为33000)改为2710(十进制为100 ...
比如,我新建了一个.c文件
代码如下
void PWM_INIT(int pwm1)
{
PWM_CH1 =pwm1;
}
,
.h文件代码如下
#define PWM_CH1 MTU0.TGRB
void PWM_INIT(pwm1)
MTU3代码如下
/* Channel 0 is used as PWM2 mode */
MTU0.TCR.BYTE = _00_MTU_PCLK_1 | _00_MTU_CKEG_RISE | _20_MTU_CKCL_A;
MTU0.TCR2.BYTE = _00_MTU_PCLK_1;
MTU.TSYRA.BIT.SYNC0 = 1U;
MTU0.TMDR1.BYTE = _03_MTU_PWM2;
MTU0.TIORH.BYTE = _70_MTU_IOB_HT | _00_MTU_IOA_DISABLE;
MTU0.TIORL.BYTE = _70_MTU_IOD_HT | _07_MTU_IOC_HT;
MTU0.TGRA = _9C3F_TGRA_VALUE;
// MTU0.TGRB =_1F40_TGRB_VALUE;
MTU0.TGRC = _3A98_TGRC_VALUE;
MTU0.TGRD = _4E20_TGRD_VALUE;
MTU0.TGRE = _9C40_TGRE_VALUE;
MTU0.TGRF = _0064_TGRF_VALUE;
MTU0.TIER2.BYTE = _00_MTU_TGIEE_DISABLE | _00_MTU_TGIEF_DISABLE;
MTU0.TIER.BYTE = _00_MTU_TGIEA_DISABLE | _00_MTU_TGIEB_DISABLE | _00_MTU_TGIEC_DISABLE | _00_MTU_TGIED_DISABLE |
_00_MTU_TCIEU_DISABLE | _00_MTU_TCIEV_DISABLE | _00_MTU_TTGE_DISABLE;
main函数如下
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
PWM_INIT (15000);
R_MTU3_C0_Start();
R_MTU3_C1_Start();
R_MTU3_C2_Start();
while (1U)
{
;
}
/* End user code. Do not edit comment generated here */
}
不知何处问题,导致无法修改占空比值
引用: 晨彦 发表于 2017-7-27 23:16
比如代码是这样的
假设你设置的是以TGRA作为一个周期,TGRB设置为initial output of MTIOC0C pin is 1. toggle output at compare match.1 at output counter clear,那么你改变TGRB的值就可以改变占空比了,比如这里MTU0.TGRA = 9C40,十进制为40000,你改变MTU0.TGRB的值,将80E8(十进制为33000)改为2710(十进制为100 ...
比如,我新建了一个.c文件
代码如下
void PWM_INIT(int pwm1)
{
PWM_CH1 =pwm1;
}
,
.h文件代码如下
#define PWM_CH1 MTU0.TGRB
void PWM_INIT(pwm1)
MTU3代码如下
/* Channel 0 is used as PWM2 mode */
MTU0.TCR.BYTE = _00_MTU_PCLK_1 | _00_MTU_CKEG_RISE | _20_MTU_CKCL_A;
MTU0.TCR2.BYTE = _00_MTU_PCLK_1;
MTU.TSYRA.BIT.SYNC0 = 1U;
MTU0.TMDR1.BYTE = _03_MTU_PWM2;
MTU0.TIORH.BYTE = _70_MTU_IOB_HT | _00_MTU_IOA_DISABLE;
MTU0.TIORL.BYTE = _70_MTU_IOD_HT | _07_MTU_IOC_HT;
MTU0.TGRA = _9C3F_TGRA_VALUE;
// MTU0.TGRB =_1F40_TGRB_VALUE;
MTU0.TGRC = _3A98_TGRC_VALUE;
MTU0.TGRD = _4E20_TGRD_VALUE;
MTU0.TGRE = _9C40_TGRE_VALUE;
MTU0.TGRF = _0064_TGRF_VALUE;
MTU0.TIER2.BYTE = _00_MTU_TGIEE_DISABLE | _00_MTU_TGIEF_DISABLE;
MTU0.TIER.BYTE = _00_MTU_TGIEA_DISABLE | _00_MTU_TGIEB_DISABLE | _00_MTU_TGIEC_DISABLE | _00_MTU_TGIED_DISABLE |
_00_MTU_TCIEU_DISABLE | _00_MTU_TCIEV_DISABLE | _00_MTU_TTGE_DISABLE;
main函数如下
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
PWM_INIT (15000);
R_MTU3_C0_Start();
R_MTU3_C1_Start();
R_MTU3_C2_Start();
while (1U)
{
;
}
/* End user code. Do not edit comment generated here */
}
不知何处问题,导致无法修改占空比值
举报