CC2530控制DAC输出指定波形问题

2019-07-18 14:47发布

我需要使用CC2530做一个类似无线的波形发生器,现在进行裸机程序测试,但是不知道什么问题就是没有波形,求指导。AD5310通过AD820产生双极型波形,但是上电后输出一直是-5V。
  1. /****************************************************************
  2.                  
  3. ****************************************************************/
  4. #include <ioCC2530.h>
  5. #include "InitUART_timer.h"  //注意在option里设置路径
  6. #include "stdio.h"

  7. #define SCLK     P0_7
  8. #define DIN      P0_6
  9. #define SYNC     P0_5  //AD5310控制
  10. #define INH      P0_4
  11. #define A        P0_3
  12. #define B        P0_2
  13. #define C        P0_1  //CD4051控制

  14. unsigned int dac_code=0, Number=0,Hz_n=0,T=0,m=0;
  15. unsigned int temp=0,i=0,j=0;

  16. /****************************************************************
  17.                        
  18. ****************************************************************/

  19. void Trans_dac_code( unsigned int data);
  20. /****************************************************************
  21. 主函数   
  22. ****************************************************************/
  23. void main(void)
  24. {      
  25.   
  26.    InitClock();

  27.    P0SEL = 0x01;
  28.    P0DIR = 0xfe;
  29.   
  30.    Hz_n=100;      //频率100Hz
  31.    T=2;           //持续时间2S
  32.    dac_code=255;  //幅值2.5V,DAC输入为255
  33.    
  34.    Number=Hz_n*T; //频率*持续时间=总脉冲数
  35.    
  36.    for(m=Number;m>0;m--)
  37.      {               
  38.         
  39.         if((T>0)&&(Hz_n>0))
  40.         {
  41.           Trans_dac_code(512);         //512DAC输出0V
  42.           P0 &= 0xe1;                  
  43.           P0 |= 0x0e;
  44.           Trans_dac_code(512+dac_code);//输出正电压
  45.           Delayms(1);
  46.                                
  47.           Trans_dac_code(512-dac_code);
  48.           Delayms(1);
  49.         }
  50.         else Trans_dac_code(512-dac_code);
  51.       }
  52.     Trans_dac_code(512);//使总时间和为1s,剩下的全输出0,每通道已有
  53.     Delayms(1000/Hz_n-3);//两个halwait(1),所以减3。
  54. }

  55. void Trans_dac_code( unsigned int data)
  56. {

  57.    
  58.     temp=data;
  59.     SYNC=1;
  60.     SCLK=1;
  61.     SYNC=0;
  62.     SCLK=0;   
  63.     for(i=0x8000;i>0;i>>=1)
  64.       {  
  65.         SCLK=1; //sck置1
  66.         j=temp&i;
  67.         if(j==0)
  68.            DIN=0; //mosi=1
  69.          else
  70.            DIN=1;  //mosi=0
  71.         SCLK=0;//sck置0
  72.         
  73.       }
  74.       SYNC=1;  //  /ss置1
  75. }



复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 x
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。