OpenEdv-开源电子网

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

【求助】 mini板子DAC底层移植问题

[复制链接]

13

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-2-22
在线时间
2 小时
发表于 2014-3-1 20:59:55 | 显示全部楼层 |阅读模式
#include <msp430x14x.h>
#include "cry1602.h"
#define uchar unsigned char
#define uint unsigned int
#define CPU_F ((double)8000000) //MCLK 8MHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

#define set_sclk P1OUT |=BIT1;
#define clr_sclk P1OUT &=~BIT1;
#define set_cs P1OUT |=BIT2;
#define clr_cs P1OUT &=~BIT2;
#define set_fs P1OUT |=BIT3;
#define clr_fs P1OUT &=~BIT3;

void tlv5636(uint dac_data)       //TLV5636子函数的调用
{
  char i=0;
  uint send_data;
  dac_data |=0x4000;
  set_cs;                         //时序的设置
  clr_fs;
  set_fs;
  delay_us(2);
  clr_cs;
  clr_fs;

for(i=0;i<16;i++)             //输出电压值的读取
  {
    send_data=(dac_data<<i)&0x8000;
    
    if(send_data==0x8000)
      P1OUT |=BIT0; 
    else
      P1OUT &=~BIT0;

    clr_sclk;
    set_sclk;
  }

  set_sclk;
  set_fs;
  set_cs;
  delay_us(10); 
}

int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;              // Stop watchdog timer to prevent time out reset
  LcdReset();
  clock();
  
  P1DIR |=BIT0+BIT1+BIT2+BIT3;

  tlv5636(0xd002);                //设置内部基准电压 (d(1101)表示对DAC内部设置寄存器的设置
                                  //(1表示基准电压为1.024v,工作在3.3V的情况下)
  tlv5636(0x0fff);                  //输入DAC电压值(4表示对DAC的数据寄存器进行设置,
                                  //200(16进制)为电压值)out_voltage=2*ref*code/4096;
  while(1);
  
}




以上是网上找到的MSP430驱动DAC代码,所用芯片是tlv5636,,,请问大神这段代码能不能移植到mini板子上用?该如何移植?


绝望的下一秒就是机遇和希望!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-1 21:02:25 | 显示全部楼层
基本上只改引脚部分定义就可以了
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

13

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-2-22
在线时间
2 小时
 楼主| 发表于 2014-3-1 21:06:22 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
能更详细点吗,,,小弟菜鸟一枚
绝望的下一秒就是机遇和希望!
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-1 21:21:35 | 显示全部楼层
#define set_sclk 1OUT |=BIT1;
#define clr_sclk 1OUT &=~BIT1;
#define set_cs 1OUT |=BIT2;
#define clr_cs 1OUT &=~BIT2;
#define set_fs 1OUT |=BIT3;
#define clr_fs 1OUT &=~BIT3;   这个改成32的IO口设置

#define CPU_F ((double)8000000) //MCLK 8MHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

Delay函数重新定义一下,或者直接用原子哥封装的Delay函数
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-1 21:31:02 | 显示全部楼层
这些代码只要你都能看懂,把它转换成32的表达形式就行了
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

13

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-2-22
在线时间
2 小时
 楼主| 发表于 2014-3-1 21:45:14 | 显示全部楼层
回复【5楼】745021926:
---------------------------------
刚学32还不久  这些底层的还看不太懂,,诶
绝望的下一秒就是机遇和希望!
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-1 21:57:29 | 显示全部楼层
回复【6楼】两个人的烟火:
---------------------------------
32的库还是挺好懂的,英语好点就够了,呵呵
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

13

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2014-2-22
在线时间
2 小时
 楼主| 发表于 2014-3-1 22:14:07 | 显示全部楼层
回复【7楼】745021926:
---------------------------------
这个好像跟时序图有关系吧,时序图还没看得很懂
绝望的下一秒就是机遇和希望!
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-1 22:44:40 | 显示全部楼层
回复【8楼】两个人的烟火:
---------------------------------
既然是移植就可以先不管时序,上面的程序没问题的话,只改引脚是可以的,延时得注意点
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 19:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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