zoukankan      html  css  js  c++  java
  • DSP5509的ADC实验

    1. 本次使用esay5509开发板,具体做这个板子叫做大道科技。

    2. 5509有2个ADC的输入引脚,就是2个采集通道

    3. 看下ADC的寄存器

    4. 看下代码中怎么引用ADC的寄存器的,这种写法很少用,但是在DSP中很常见的。

    1 ioport unsigned int *ADCCTL1=(unsigned int *)0x6800;
    2 ioport unsigned int *ADCDATA1=(unsigned int *)0x6801;
    3 ioport unsigned int *ADCCLKDIV1=(unsigned int *)0x6802;
    4 ioport unsigned int *ADCCLKCTL1=(unsigned int *)0x6803;
    5 #define ADCCTL (*ADCCTL1)
    6 #define ADCDATA (*ADCDATA1)
    7 #define ADCCLKDIV (*ADCCLKDIV1)
    8 #define ADCCLKCTL (*ADCCLKCTL1) 

    5. 主程序比较简单

     1 main()
     2 {
     3     int i;
     4     unsigned int uWork;
     5     
     6     EnableAPLL();
     7 
     8     InitADC();
     9     PLL_Init(132);
    10     while ( 1 )
    11     {
    12         for ( i=0;i<256;i++ )
    13         {
    14             ADCCTL=0x8000;    // 启动AD转换,通道0
    15             do
    16             {
    17                 uWork=ADCDATA;
    18             } while ( uWork&0x8000 );
    19             nADC0[i]=uWork&0x0fff;
    20         }
    21         for ( i=0;i<256;i++ )
    22         {
    23             ADCCTL=0x9000;    // 启动AD转换,通道1
    24             do
    25             {
    26                 uWork=ADCDATA;
    27             } while ( uWork&0x8000 );
    28             nADC1[i]=uWork&0x0fff;
    29         }
    30         asm( " nop");        // break point 在这里设断点
    31     }
    32 }
    33 
    34 void InitADC()
    35 {
    36     ADCCLKCTL=0x23; // 4MHz ADCLK
    37     ADCCLKDIV=0x4f00;
    38 }

    6. 在程序中注意到一个细节,怎么直接给寄存器赋值的,看下面*( ioport volatile unsigned short* )0x1f00 = 4;这种写法很重要,一定要掌握。

     1 void EnableAPLL( )
     2 {
     3     /* Enusre DPLL is running */
     4     *( ioport volatile unsigned short* )0x1f00 = 4;
     5     wait( 25 );
     6     *( ioport volatile unsigned short* )0x1f00 = 0;
     7     // MULITPLY
     8     *( ioport volatile unsigned short* )0x1f00 = 0x3000;
     9     // COUNT
    10     *( ioport volatile unsigned short* )0x1f00 |= 0x4F8;
    11     wait( 25 );
    12     //*( ioport volatile unsigned short* )0x1f00 |= 0x800
    13     // MODE
    14     *( ioport volatile unsigned short* )0x1f00 |= 2;
    15     wait( 30000 );
    16     // APLL Select
    17     *( ioport volatile unsigned short* )0x1e80 = 1;
    18     // DELAY
    19     wait( 60000 );
    20 }
  • 相关阅读:
    AlphaMobileControls
    .NET Compact Framework下注册表导出工具的开发
    windows moblie 5.0在托管程序中实现短信接收和拦截
    自定义MessageBox
    Windows Mobile 背景灯控制
    windows Mobile 启动Mobile Office
    windows mobile 5.0 进程管理、窗体管理、重启和关闭操作系统
    让Windows Mobile模拟器通过你的PC上网
    Windows Mobile获取存储卡容量及使用情况
    透明背景
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8245549.html
Copyright © 2011-2022 走看看