查看: 2619|回复: 7

[其他] 每天解决一个问题3 :PIT+EDMA+GPIO=PWM

[复制链接]

该用户从未签到

29

主题

439

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
720
最后登录
2015-12-29
发表于 2015-9-16 14:52:34 | 显示全部楼层 |阅读模式
看到很多人对于实现PIT+EDMA+GPIO=PWM有不成功的问题,下面就讲讲根据官网手册实现的这个功能
首先官网手册有一定的误导性,内容是pit周期性触发pit,却把中断源设置成gpio的。其实应该设置成always on。
第二明明是级联通道5,使能请求却是通道1.当然我的失败地方有很多,比如开了中断却没有清除,导致出错。
将gpio输出成led闪烁。由于设置频率太高,看不出闪烁,导致即使调试成功也没看到闪烁

忘同志们引以为戒,下面是主要代码
typedef struct {
        u32        high;
        u32        low;
} PLS;



/* Variable *******************************************************************/
PLS pls = {10000000, 60000000};
u32        pin_mask = (1 << 7);

void Pluse_Init(void)
{
       
        PORTB->PCR[7] = PORT_PCR_MUX(1) | PORT_PCR_IRQC(3);
        PTB->PDDR |= pin_mask;
        PTB->PSOR = pin_mask;
       
        DMAMUX->CHCFG[0] = DMAMUX_CHCFG_SOURCE(50);
        DMAMUX->CHCFG[0] |= (DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_TRIG_MASK);
        //DMAMUX->CHCFG[0] = DMAMUX_CHCFG_SOURCE(0);
       
        PIT->CHANNEL[0].LDVAL = pls.high;
        PIT->CHANNEL[0].TCTRL &= ~PIT_TCTRL_TEN_MASK;
        PIT->CHANNEL[0].TFLG = PIT_TFLG_TIF_MASK;
       
        DMA0->TCD[0].SADDR = (u32)&pin_mask;
        DMA0->TCD[0].SOFF = DMA_SOFF_SOFF(0);
        DMA0->TCD[0].ATTR = DMA_ATTR_SSIZE(2) | DMA_ATTR_DSIZE(2);
        DMA0->TCD[0].NBYTES_MLOFFNO = DMA_NBYTES_MLOFFNO_NBYTES(4);
        DMA0->TCD[0].SLAST = DMA_SLAST_SLAST(0);
        DMA0->TCD[0].DADDR = (u32)&PTB->PTOR;
        DMA0->TCD[0].DOFF = DMA_DOFF_DOFF(0);
        DMA0->TCD[0].DLAST_SGA = DMA_DLAST_SGA_DLASTSGA(0);
        DMA0->TCD[0].BITER_ELINKNO = DMA_BITER_ELINKNO_BITER(1);
        DMA0->TCD[0].CITER_ELINKNO = DMA_CITER_ELINKNO_CITER(1);  
        DMA0->CDNE = DMA_CDNE_CDNE(0);
        DMA0->TCD[0].CSR = DMA_CSR_MAJORELINK_MASK | DMA_CSR_MAJORLINKCH(5);
        DMA0->SERQ = DMA_SERQ_SERQ(0);       
       
       
        DMA0->TCD[5].SADDR = (u32)&pls;
        DMA0->TCD[5].SOFF = DMA_SOFF_SOFF(4);
        DMA0->TCD[5].ATTR = DMA_ATTR_SSIZE(2) | DMA_ATTR_DSIZE(2);
        DMA0->TCD[5].NBYTES_MLOFFNO = DMA_NBYTES_MLOFFNO_NBYTES(4);
        DMA0->TCD[5].SLAST = DMA_SLAST_SLAST(-8);
        DMA0->TCD[5].DADDR = (u32)&PIT->CHANNEL[0].LDVAL;
        DMA0->TCD[5].DOFF = DMA_DOFF_DOFF(0);
        DMA0->TCD[5].DLAST_SGA = DMA_DLAST_SGA_DLASTSGA(0);
        DMA0->TCD[5].BITER_ELINKNO = DMA_BITER_ELINKNO_BITER(2);
        DMA0->TCD[5].CITER_ELINKNO = DMA_BITER_ELINKNO_BITER(2);
        DMA0->CDNE = DMA_CDNE_CDNE(1);
        DMA0->TCD[5].CSR = 0x00;
        DMA0->SERQ = DMA_SERQ_SERQ(5);
       
       

       
        PIT->CHANNEL[0].TCTRL |= PIT_TCTRL_TEN_MASK;
        PIT->CHANNEL[0].LDVAL = pls.low;
       
        PTB->PTOR = pin_mask;
}


我知道答案 目前已有7人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-30 10:41:43 | 显示全部楼层
    学习了,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-11-18 12:16
  • 签到天数: 560 天

    连续签到: 1 天

    [LV.9]以坛为家II

    23

    主题

    913

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2305
    最后登录
    2019-11-18
    发表于 2015-10-1 21:48:28 | 显示全部楼层
    感谢分享………………
    1.png
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    11

    主题

    171

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2015-10-22
    发表于 2015-10-17 00:13:54 | 显示全部楼层
    多谢分享
    logo.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    642

    帖子

    0

    高级会员

    Rank: 4

    积分
    748
    最后登录
    1970-1-1
    发表于 2015-10-21 15:28:36 | 显示全部楼层
    多谢分享
    回复

    使用道具 举报

    该用户从未签到

    29

    主题

    439

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    720
    最后登录
    2015-12-29
     楼主| 发表于 2015-10-21 17:26:22 | 显示全部楼层
    共同学习
    回复

    使用道具 举报

    该用户从未签到

    24

    主题

    167

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    446
    最后登录
    2018-6-11
    发表于 2015-10-22 10:33:44 | 显示全部楼层
    谢谢分享            
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    189

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    244
    最后登录
    2020-10-19
    发表于 2015-10-22 12:58:18 | 显示全部楼层
    好,都是经验之谈啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 15:22 , Processed in 0.102314 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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