查看: 1980|回复: 5

[求助] 关于K64片外AD的一些问题

[复制链接]
  • TA的每日心情

    2019-9-17 13:22
  • 签到天数: 238 天

    连续签到: 1 天

    [LV.7]常住居民III

    30

    主题

    905

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    2251
    最后登录
    2024-10-8
    发表于 2015-4-3 14:38:02 | 显示全部楼层 |阅读模式
    现在在调片外AD,有一些问题需要请教。
    1.关于K64上FB_CS功能,需要将CS拉高和拉低,K64ALT5就是FB_CS功能,不太明白。还是bsp中设为GPIO,然后通过设置GPIOOUT来改变值?


    2.关于延时,调整时序时难免要用到延时10us,20us等不需要特别精确,_time_delay_ticks(10);是这么用吗?

    我知道答案 目前已有5人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-4-7 09:48:06 | 显示全部楼层
    1. 不是这样的,你需要在PORTx_PCRn[MUX]设置对应的引脚功能。
    2.我不知道你的延时函数对应的代码是什么?我需要你贴出来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-9-17 13:22
  • 签到天数: 238 天

    连续签到: 1 天

    [LV.7]常住居民III

    30

    主题

    905

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    2251
    最后登录
    2024-10-8
     楼主| 发表于 2015-4-9 15:04:01 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-4-7 09:48
    1. 不是这样的,你需要在PORTx_PCRn[MUX]设置对应的引脚功能。
    2.我不知道你的延时函数对应的代码是什么? ...

    想利用PIT,注册一个isr的回调函数,在回调函数中可以去发起采样。比如说采样函数是GetAdResult(),代码具体要怎么修改,给出一个大概,也是copy来的。

    uint32 PITCounter = 0;


    void pit_init(uint8 pitno,uint32 timeout)
    {
            SIM_SCGC6|=SIM_SCGC6_PIT_MASK;                    
            PIT_MCR&=~(PIT_MCR_MDIS_MASK);               
            PIT_MCR|=PIT_MCR_FRZ_MASK;                     
            PIT_LDVAL(pitno)=timeout;                       
            PIT_TCTRL(pitno)|=PIT_TCTRL_TEN_MASK;               
            
            PIT_TCTRL(pitno)|=(PIT_TCTRL_TIE_MASK);         
            enable_irq(68);                                       
    }


    void pit_isr(void)
    {
            if((PIT_TFLG(0)&PIT_TFLG_TIF_MASK)!=0)
            {
                    PITCounter++;  
                    PIT_TFLG(0)|=PIT_TFLG_TIF_MASK;      
            }
    }


    /********************************************************************/
    void main (void)
    {
            char ch;
            pit_init(0,10000000);        
            GetAdResult()
            
            }
    }
    /********************************************************************/
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-4-9 15:08:40 | 显示全部楼层
    very333 发表于 2015-4-9 15:04
    想利用PIT,注册一个isr的回调函数,在回调函数中可以去发起采样。比如说采样函数是GetAdResult(),代码 ...

    如果你使能PIT作为ADC的硬件触发源,直接可以触发AD转换,没必要又专门写个回调函数吧,直接查询标志位,就可以读取啊!很方便的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-9-17 13:22
  • 签到天数: 238 天

    连续签到: 1 天

    [LV.7]常住居民III

    30

    主题

    905

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    2251
    最后登录
    2024-10-8
     楼主| 发表于 2015-4-9 15:52:38 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-4-9 15:08
    如果你使能PIT作为ADC的硬件触发源,直接可以触发AD转换,没必要又专门写个回调函数吧,直接查询标志位, ...

    说一下主函数的软件流程,还是不太了解,
    首先进入中断;启动AD,读取数据,退出中断。对吗?
    怎样进入中断?

            
            
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-4-9 17:23:37 | 显示全部楼层
    very333 发表于 2015-4-9 15:52
    说一下主函数的软件流程,还是不太了解,
    首先进入中断;启动AD,读取数据,退出中断。对吗?
    怎样进入中 ...

    使能PIT硬件触发ADC采样,启动PIT,PIT中断触发后,自然触发ADC采样,你就可以直接通过状态位了解ADC采样是否结束,当结束后,
    读取ADC结果,就可以啊!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 05:11 , Processed in 0.090969 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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