⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 DSP关于F240的实例程序
💻 C
字号:
#include "ADuC842.h"
#include <absacc.h>
#include <intrins.h>
#include "math.h"
#include "LCD.h"
#include "DMA.h"
#include "bmp.h"

#define DDS_LSB	      XBYTE[0x3000]
#define DDS_HSB	      XBYTE[0x4000]
#define FREQ0_16LSB	  XBYTE[0x2000]
#define FREQ0_16MSB	  XBYTE[0x2100]

#define PI 3.1415927
sbit test = P3^5;


code unsigned char wang[]={"wang rui jie"};

  void init_main(void)
{
	
	WDE = 0;  //watch dog disable


    ADCCON1=0xA0; //上电并设为3分频 
    ADCCON2=0x00;//通道0
    EA = 0;               // enable interrupts
    EADC = 0; // enable ADC interrup
    CFG842 = CFG842|0x01;;//使用2k存储区
    PLLCON = (PLLCON &0xF0 )| 0x01;   //842 use

}

void delay(unsigned int x)
{ 
  unsigned int i,j;
    for(i=0;i<x;i++)
  { 
    for(j=0;j<x;j++); 
  }
}

  void DAC(void)
{  
  unsigned int xdata i,temp;
  char LSB,HSB;

  DACCON=0x0D;    //DAC0 on, 12bit
//  DAC0H=0x0f;
//  DAC0L=0x00;     // DAC0 to mid-scale
  
   

   for(i=0;i< 128;i++) 
  {        
    temp = 16 * i;
    LSB = temp & 0x00FF;
    HSB = (temp>>8) & 0x000F;
    DAC0H = HSB;
    DAC0L = LSB;
    
    delay(100);
  }
  
  
}

void WriteDDS()
{
    DDS_LSB=0X6A;
    DDS_HSB=0X36;
    FREQ0_16LSB = 0x55;
    DDS_LSB=0X01;
    DDS_HSB=0X00;
    FREQ0_16MSB = 0x55;
    
}

void Write_To_FREQ0( unsigned char FREQ0_LSBs_L,
                     unsigned char FREQ0_LSBs_H,
                     unsigned char FREQ0_MSBs_L,
                     unsigned char FREQ0_MSBs_H ) //频率寄存器参数

{          	    
    DDS_LSB = FREQ0_LSBs_L;
    DDS_HSB = FREQ0_LSBs_H; 
    FREQ0_16LSB = 0x55;

    DDS_LSB = FREQ0_MSBs_L;
    DDS_HSB = FREQ0_MSBs_H;
    FREQ0_16MSB = 0x55; 
    
}

void WriteFreq(float freq)
{
    unsigned long xdata value32;
    unsigned char xdata  LSB_HByte,LSB_LByte;
    unsigned char xdata MSB_HByte,MSB_LByte;

     
    
    value32=(unsigned long)(freq * 214.748);
    LSB_LByte=value32 & 0x000000FF;
    LSB_HByte=(value32 >>8) & 0x000000FF;
    MSB_LByte=(value32 >>16) & 0x000000FF;
    MSB_HByte=(value32 >>24) & 0x000000FF;
	
    Write_To_FREQ0 (LSB_LByte ,LSB_HByte ,MSB_LByte,MSB_HByte);

}

void disp_sinwave(void)
{
   int xdata i,num=256;
   float xdata y;
   unsigned int xdata temp=0;
   for(i=0;i<num;i++)
  {
   y=1 + 0.8*sin(2*PI*i/num);
   
   temp =(unsigned int) (100 *y + 20);
   plot_point(2,i+2, temp,1);
   plot_point(2,312-i, temp,1);
   
  
  } 
}


void  main()
{    
    
    
    init_main();
    Init1335();    //液晶初始化
    test=1;
    WriteFreq(300);
    
  //  DAC();


draw_ZuoBiaoZhou(3);


 while(1) 
{  test=~test;

   DMA_Start( 3 );
   DMA_Display();
    delay(900);
  ClearLayer2();
}         



    while(1);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -