DSP例程DA转换程序为什么不用指定GPIO输出?

2019-07-18 15:51发布

看了一个DA的例程,例程里并没有指定DA的输出端口,但是给定了地址。板子上连接到DA芯片输出引脚的插针有DA输出。这是什么原理。是因为数据总线直接访问这个地址,把数据发送到DA芯片的吗?求解.
  1. #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
  2. #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
  3. #include <math.h>

  4. void InitXintf(void);
  5. #define DA_CHA                *(Uint16 *)0x4100
  6. #define DA_CHB                *(Uint16 *)0x4102
  7. #define DA_CHC                *(Uint16 *)0x4104
  8. #define DA_CHD                *(Uint16 *)0x4106
  9. #define DA_TRANS        *(Uint16 *)0x47ff

  10. void main(void)
  11. {
  12.    Uint16 CHA_DATA = 0;
  13.    Uint16 CHB_DATA = 0;
  14.    Uint16 CHC_DATA = 0;
  15.    Uint16 CHD_DATA = 0;
  16.    Uint16 flagA = 0;

  17.    InitSysCtrl();

  18.    DINT;


  19.    InitPieCtrl();


  20.    IER = 0x0000;
  21.    IFR = 0x0000;


  22.    InitPieVectTable();
  23.    
  24.    InitXintf();

  25.    while(1)
  26.    {        DA_TRANS = 1;
  27.         if(flagA)
  28.         {
  29.                 CHA_DATA -= 100;
  30.                 if(CHA_DATA == 0)
  31.         {
  32.                         flagA = 0;
  33.                 }
  34.         }
  35.         else
  36.         {
  37.                 CHA_DATA += 100;
  38.                 if(CHA_DATA == 4000)
  39.                 {
  40.                         flagA = 1;
  41.                 }
  42.         }

  43.         if(flagA)
  44.                 CHB_DATA = 0;
  45.         else
  46.                 CHB_DATA = 4000;

  47.         if(CHC_DATA == 4000)
  48.                 CHC_DATA = 0;
  49.         else
  50.                 CHC_DATA += 100;

  51.         CHD_DATA = 2047 * sin((float)(2 * 3.14 * (float)CHC_DATA / 4000.0)) + 2048;

  52.         DA_CHA = CHA_DATA;//三角波
  53.         DA_CHB = CHB_DATA;//方波
  54.         DA_CHC = CHC_DATA;//锯齿波
  55.         DA_CHD = CHD_DATA;//正弦波
  56.         DA_TRANS = 0;
  57.         DELAY_US(10);

  58.    }
  59. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
zhangmangui
2019-07-19 01:10
598835484 发表于 2017-2-20 16:07
@zhangmangui 求助版主

确定一下     DA是不是接到了CPLD等可编程逻辑单元上
DA是不是接到了类似于XINTF  EMIF等这种总线接口上
如果是DA就是DSP的一个外设     这个外设根据硬件设计会有一个
操作地址(基地址+偏移量)   就可以对一个地址操作   即操作DA

一周热门 更多>