OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3208|回复: 1

RT1052 的GPT2 的通道3 位输出模式

[复制链接]

10

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2017-7-13
在线时间
13 小时
发表于 2019-4-12 15:37:26 | 显示全部楼层 |阅读模式

@原子哥你好!  我在试验GPT功能时发现个问题:在配置为比较输出模式时, 我如果三个通道都进行初始化,那么能正常进入中断, 但是,如果不初始化通道1时,则已进入1次中断后,就在也无法正常中断啦!   另外通道3 对用管脚 GPIO_AD_B0_08 也没有波形输出。   能帮我看一下是什么问题吗?

void GPT2_Int_Init(u16 psc,u32 ocrx)
{
        gpio_pin_config_t         gpt_io_config;
        //IO1|ÄüéèÖÃ
        IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_08_GPT2_COMPARE3,0);        //GPIO_AD_B0_03ÅäÖÃÎaALT5,¼′GPIO1_3
        IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_08_GPT2_COMPARE3,0x10B0);
       
        gpt_io_config.direction=kGPIO_DigitalOutput;        //êä3ö
        gpt_io_config.interruptMode=kGPIO_IntLowLevel;        //2»ê1óÃÖD¶Ï1|Äü
        gpt_io_config.outputLogic=1;                                        //Ĭèϸßμçƽ£¬LEDμÆ1رÕ
        GPIO_PinInit(GPIO1,8,&gpt_io_config);                 //3õê¼»ˉGPIO1_3
       
        GPT_GetDefaultConfig(&gpt2_onfig);        //Ïè3õê¼»ˉGPT1ÎaĬèÏÖμ
        gpt2_onfig.clockSource=kGPT_ClockSource_Periph;        //3õê¼»ˉê±ÖóÔ′perclk_clk_root
        gpt2_onfig.divider=psc;                //éèÖ÷ÖÆμÖμ
        GPT_Init(GPT2,&gpt2_onfig);

        GPT_SetOutputCompareValue(GPT2,kGPT_OutputCompare_Channel1,ocrx);            //éèÖñè½Ï¼ÆêyÖμ
        GPT_EnableInterrupts(GPT2,kGPT_OutputCompare1InterruptEnable);                        //ê1ÄüGPT±è½Ïí¨μà1ÖD¶Ï
       
        GPT_SetOutputCompareValue(GPT2,kGPT_OutputCompare_Channel2,ocrx);            //éèÖñè½Ï¼ÆêyÖμ
        GPT_EnableInterrupts(GPT2,kGPT_OutputCompare2InterruptEnable);                        //ê1ÄüGPT±è½Ïí¨μà1ÖD¶Ï
       
        GPT_GetOutputOperationMode(GPT2,kGPT_OutputCompare_Channel3);
        GPT_SetOutputCompareValue(GPT2,kGPT_OutputCompare_Channel3,ocrx);            //éèÖñè½Ï¼ÆêyÖμ
        GPT_EnableInterrupts(GPT2,kGPT_OutputCompare3InterruptEnable);                        //ê1ÄüGPT±è½Ïí¨μà1ÖD¶Ï
        RT1052_NVIC_SetPriority(GPT2_IRQn,5,0);                                                                        //ÇàÕ¼óÅÏ輶5£¬×óóÅÏ輶0
        EnableIRQ(GPT2_IRQn);        //ê1ÄüGPT1ÖD¶Ï
        GPT_StartTimer(GPT2);        //¿a꼶¨ê±Æ÷       
}


//GPT1ÖD¶Ï·tÎñoˉêy
void GPT1_IRQHandler(void)
{
    //OCR1ÖD¶Ï
    if(GPT_GetStatusFlags(GPT1,kGPT_OutputCompare1Flag))
    {
        LED0_Toggle;                        //LED1μÆ·-×a
        GPT_ClearStatusFlags(GPT1,kGPT_OutputCompare1Flag);//Çå3yÖD¶Ï±ê־λ
    }
        __DSB();                                //êy¾Yí¬2½Æá±ÎÖ¸áî
}

void GPT2_IRQHandler(void)
{
    //OCR1ÖD¶Ï
    if(GPT_GetStatusFlags(GPT2,kGPT_OutputCompare1Flag))
    {
        LED1_Toggle;                        //LED1μÆ·-×a
        GPT_ClearStatusFlags(GPT2,kGPT_OutputCompare1Flag);//Çå3yÖD¶Ï±ê־λ
    }
                if(GPT_GetStatusFlags(GPT2,kGPT_OutputCompare2Flag))
    {
        LED0_Toggle;                        //LED1μÆ·-×a
        GPT_ClearStatusFlags(GPT2,kGPT_OutputCompare2Flag);//Çå3yÖD¶Ï±ê־λ
    }
                                if(GPT_GetStatusFlags(GPT2,kGPT_OutputCompare3Flag))
    {
        LED0_Toggle;                        //LED1μÆ·-×a
        GPT_ClearStatusFlags(GPT2,kGPT_OutputCompare3Flag);//Çå3yÖD¶Ï±ê־λ
    }
        __DSB();                                //êy¾Yí¬2½Æá±ÎÖ¸áî
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

308

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-3-26
在线时间
9 小时
发表于 2019-4-17 09:11:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-8 15:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表