我需要使用CC2530做一个类似无线的波形发生器,现在进行裸机程序测试,但是不知道什么问题就是没有波形,求指导。AD5310通过AD820产生双极型波形,但是上电后输出一直是-5V。
- /****************************************************************
-
- ****************************************************************/
- #include <ioCC2530.h>
- #include "InitUART_timer.h" //注意在option里设置路径
- #include "stdio.h"
- #define SCLK P0_7
- #define DIN P0_6
- #define SYNC P0_5 //AD5310控制
- #define INH P0_4
- #define A P0_3
- #define B P0_2
- #define C P0_1 //CD4051控制
- unsigned int dac_code=0, Number=0,Hz_n=0,T=0,m=0;
- unsigned int temp=0,i=0,j=0;
- /****************************************************************
-
- ****************************************************************/
- void Trans_dac_code( unsigned int data);
- /****************************************************************
- 主函数
- ****************************************************************/
- void main(void)
- {
-
- InitClock();
- P0SEL = 0x01;
- P0DIR = 0xfe;
-
- Hz_n=100; //频率100Hz
- T=2; //持续时间2S
- dac_code=255; //幅值2.5V,DAC输入为255
-
- Number=Hz_n*T; //频率*持续时间=总脉冲数
-
- for(m=Number;m>0;m--)
- {
-
- if((T>0)&&(Hz_n>0))
- {
- Trans_dac_code(512); //512DAC输出0V
- P0 &= 0xe1;
- P0 |= 0x0e;
- Trans_dac_code(512+dac_code);//输出正电压
- Delayms(1);
-
- Trans_dac_code(512-dac_code);
- Delayms(1);
- }
- else Trans_dac_code(512-dac_code);
- }
- Trans_dac_code(512);//使总时间和为1s,剩下的全输出0,每通道已有
- Delayms(1000/Hz_n-3);//两个halwait(1),所以减3。
- }
- void Trans_dac_code( unsigned int data)
- {
-
- temp=data;
- SYNC=1;
- SCLK=1;
- SYNC=0;
- SCLK=0;
- for(i=0x8000;i>0;i>>=1)
- {
- SCLK=1; //sck置1
- j=temp&i;
- if(j==0)
- DIN=0; //mosi=1
- else
- DIN=1; //mosi=0
- SCLK=0;//sck置0
-
- }
- SYNC=1; // /ss置1
- }
复制代码
本帖子中包含更多资源
您需要
登录 才可以下载或查看,没有帐号?
注册
x
一周热门 更多>