查看: 2286|回复: 2

[求助] [求助]PDB模块不会使用

[复制链接]
  • TA的每日心情
    奋斗
    2019-1-16 15:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    32

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2019-12-4
    发表于 2013-6-19 13:47:55 | 显示全部楼层 |阅读模式
    谁能提供一个完整的使用PDB模块设计的微秒级延时代码?非常感谢!
    我知道答案 目前已有1人回答
    回复

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2013-6-19 22:44:24 | 显示全部楼层

    回复:[求助]PDB模块不会使用

    在飞思卡尔官方例程代码中有关于PDB触发ADC采样的的例程代码,其中关于PDB的初始化代码如下,你可以参照修改。
    void pdb_init(void)
    {
    int i;
    //use ptd10 11 to indicate program status
    //enable ptd10 11 as rgpio funciton
    PORTD_PCR11  = PORT_PCR_MUX(1)|PORT_PCR_DSE_MASK;
    PORTD_PCR10  = PORT_PCR_MUX(1)|PORT_PCR_DSE_MASK;

    //enable ptd10 11 as output
    GPIOD_PDDR  |= 0xC00;
    //output 0
    GPIOD_PDOR =0;

      //-------------------------pdb setup---------------------------------
    //1.Set to software trigger input
    //2.Enable pdb module
    //3.Prescale set to 0
    //4. LDMOD = 0: load immediately after setting LDOK
    //5. enable PDB sequence error interrupt
    //Only enable pdb module then you can write in all channel delay value

    PDB0_SC = 0x00000000;

    // NOTE: PDB must be enabled before writting to buffered registers
    // otherwise, it will be always previous value.
    //Enable PDB
    PDB0_SC |= PDB_SC_PDBEN_MASK;

    PDB0_SC |= PDB_SC_TRGSEL(0xF);
       
      //Enable continuous mode
    PDB0_SC |= PDB_SC_CONT_MASK;

    //Enable pre-trigger out to ADC0/1
    PDB0_CH0C1 = PDB_C1_TOS(3)|PDB_C1_EN(3);
    PDB0_CH1C1 = PDB_C1_TOS(3)|PDB_C1_EN(3);

    //Set CH0 DLY0/1
    PDB0_CH0DLY0 = 0;
    PDB0_CH0DLY1 = 3648;    // delay the conversion time = 76us

    //Set CH1 DLY0/1
    PDB0_CH1DLY0 = 0;
    PDB0_CH1DLY1 = 3648;    // delay the conversion time = 76us

    //Set PDB_MOD to 156us corresponding to sampling frequency Fs=6.4KHz
    PDB0_MOD = 7488;

    //Set interrupt delay value
    PDB0_IDLY = 7488;

    //Load delay value
    PDB0_SC |= PDB_SC_LDOK_MASK;

    //Enable interrupt
    PDB0_SC |= PDB_SC_PDBIE_MASK;
    PDB0_SC |= PDB_SC_PDBEIE_MASK;
    //Set software trigger
    PDB0_SC |= PDB_SC_SWTRIG_MASK;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-1-16 15:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    32

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2019-12-4
     楼主| 发表于 2013-6-25 11:00:33 | 显示全部楼层

    RE:[求助]PDB模块不会使用

    谢谢版主!!!!!!!!!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 19:48 , Processed in 0.085394 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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