查看: 3485|回复: 10

[求助] 请教KL25的DAC使用方法

[复制链接]

该用户从未签到

8

主题

20

帖子

0

注册会员

Rank: 2

积分
98
最后登录
2016-9-10
发表于 2015-12-8 15:27:40 | 显示全部楼层 |阅读模式
新手,刚学习KL25的DA输出简单方法,在PE方式下编程,看朋友的编程方法写到:
   "............... 我们用一个简单的程序测试DA转换功能。这个功能实现起来很简单,按上述描述设置DA1属
性后,在main()函数中加入下面的一段程序即可。

   LDD_TDeviceData *DeviceDataPtr;
   LDD_DAC_TData Data;
   //初始化DAC
   DeviceDataPtr = DA1_Init(0);
   //输出模拟电压Vref/2
   Data = 2047; //12 位DAC 最大为4095,中间值为2047
   DA1_SetValue(DeviceDataPtr, Data);
       可以通过万用表测量扩展接口的32 脚(PTE30)获得DA 输出电压。偿试更改Data 变量的值
从而获得希望的模拟电压。..................."

       但   DA1_SetValue(DeviceDataPtr, Data);    这句报错,不知在PE方式下,最简单的DA输出语句应该如何写?谢谢
我知道答案 目前已有10人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-12-8 15:58:20 | 显示全部楼层
可以直接控制寄存器,下面的代码供你参考。
void  dacTrigger (INT16U  uiData)
{
    /*
     *  DAC寄存器赋值
     */
    DAC0_DATL(0) = uiData & 0x00ff;                                     /* 选择DAC高位寄存器赋值        */
    DAC0_DATH(0) = uiData >> 8;                                         /* 选择DAC高位寄存器赋值        */
    DAC0_C0 |= DAC_C0_DACSWTRG_MASK;                                    /* DAC软件触发                  */
}
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

20

帖子

0

注册会员

Rank: 2

积分
98
最后登录
2016-9-10
 楼主| 发表于 2015-12-8 16:14:43 | 显示全部楼层
好的,我试试
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-12-9 10:33:31 | 显示全部楼层

后面如果还有问题,欢迎继续发帖交流。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
    发表于 2015-12-9 15:02:59 | 显示全部楼层
    本帖最后由 suyong_yq 于 2015-12-9 15:04 编辑
    FSL_TICS_ZJJ 发表于 2015-12-8 15:58
    可以直接控制寄存器,下面的代码供你参考。
    void  dacTrigger (INT16U  uiData)
    {

    最后一句设定软件触发的功能是否可以省略?
    DAC会实时输出DAC Buffer中指针指向的那个item的值,在最简单的用法中,只要向那个item里写数就能立刻输出电压信号。
    PS:不好意思,才意识到这个函数是trigger,不是output。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-12-9 15:32:40 | 显示全部楼层
    suyong_yq 发表于 2015-12-9 15:02
    最后一句设定软件触发的功能是否可以省略?
    DAC会实时输出DAC Buffer中指针指向的那个item的值,在最简单 ...

    软件触发,只有触发了,你那边才会有DAC输出。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-6 07:38
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    3486

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    5093
    最后登录
    2024-1-7
    发表于 2015-12-9 20:51:03 | 显示全部楼层
    学习一下
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
    发表于 2015-12-10 09:57:42 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-12-9 15:32
    软件触发,只有触发了,你那边才会有DAC输出。

    嗯?我记得软件触发的对象仅仅是buffer的指针,不是触发模拟信号的输出动作。
    在没有任何触发的情况下(软件触发还是硬件触发),只要向指针指向的item写数,DAC就会实时地转化成模拟信号输出。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-12-10 10:06:14 | 显示全部楼层
    suyong_yq 发表于 2015-12-10 09:57
    嗯?我记得软件触发的对象仅仅是buffer的指针,不是触发模拟信号的输出动作。
    在没有任何触发的情况下( ...

    是的,上面的帖子说的不准确,硬件或者软件触发是用来控制数据缓冲读取指针指向下一个。
    DAC的输出,是当DAC模块和缓冲使能时,DAC模块就会将缓冲区的数据转换为模拟输出电压。
    如果缓冲未使能,只要DAC模块使能,就能把数据寄存器DAT0中的数据转换为模拟电压。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    642

    帖子

    0

    高级会员

    Rank: 4

    积分
    748
    最后登录
    1970-1-1
    发表于 2015-12-11 09:03:40 | 显示全部楼层
    感谢分享
    logo.png
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-25 09:36 , Processed in 0.110266 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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