看了一个DA的例程,例程里并没有指定DA的输出端口,但是给定了地址。板子上连接到DA芯片输出引脚的插针有DA输出。这是什么原理。是因为数据总线直接访问这个地址,把数据发送到DA芯片的吗?求解.
- #include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
- #include "DSP2833x_Examples.h" // DSP2833x Examples Include File
- #include <math.h>
- void InitXintf(void);
- #define DA_CHA *(Uint16 *)0x4100
- #define DA_CHB *(Uint16 *)0x4102
- #define DA_CHC *(Uint16 *)0x4104
- #define DA_CHD *(Uint16 *)0x4106
- #define DA_TRANS *(Uint16 *)0x47ff
- void main(void)
- {
- Uint16 CHA_DATA = 0;
- Uint16 CHB_DATA = 0;
- Uint16 CHC_DATA = 0;
- Uint16 CHD_DATA = 0;
- Uint16 flagA = 0;
- InitSysCtrl();
-
- DINT;
- InitPieCtrl();
- IER = 0x0000;
- IFR = 0x0000;
- InitPieVectTable();
-
- InitXintf();
- while(1)
- { DA_TRANS = 1;
- if(flagA)
- {
- CHA_DATA -= 100;
- if(CHA_DATA == 0)
- {
- flagA = 0;
- }
- }
- else
- {
- CHA_DATA += 100;
- if(CHA_DATA == 4000)
- {
- flagA = 1;
- }
- }
- if(flagA)
- CHB_DATA = 0;
- else
- CHB_DATA = 4000;
- if(CHC_DATA == 4000)
- CHC_DATA = 0;
- else
- CHC_DATA += 100;
- CHD_DATA = 2047 * sin((float)(2 * 3.14 * (float)CHC_DATA / 4000.0)) + 2048;
- DA_CHA = CHA_DATA;//三角波
- DA_CHB = CHB_DATA;//方波
- DA_CHC = CHC_DATA;//锯齿波
- DA_CHD = CHD_DATA;//正弦波
- DA_TRANS = 0;
- DELAY_US(10);
- }
- }
复制代码
一周热门 更多>