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

📄 main.c

📁 keil开发平台下的ADUC7027的功能模块代码。
💻 C
字号:
/**********************************************************************************************
  main.c file

  ADuC7026的第七个实验——DAC

  作者:Computer-lov
  建立日期:2006-4-13
  修改日期:2006-4-13
  版本:V1.0
  版权所有,盗版必究。
  任何技术问题可到我的博客上留言:    http://computer00.21ic.org
  Copyright(C) Computer-lov 2006-2016
  All rights reserved
**********************************************************************************************/

#include <ADuC7026.H>
#include <../My_type.h>
#include "DAC.H"

/*********************************************************************************************/
void SysClkInit(void)
{
 PLLKEY1=0xAA;
 PLLCON=0x01;   //PLL配置  
 PLLKEY2=0x55;
 POWKEY1=0x01;
 POWCON=0x00;  //CPU时钟配置为41.78MHz
 POWKEY2=0xF4;
// while(!(PLLSTA & 0x01));
}
///////////////////////////////////////////////////////////////////////////////////////////////

//64点的正弦表

const uint32 SinTable[64] = {
 	0x07FF0000, 0x08C80000, 0x098E0000, 0x0A510000, 0x0B0F0000, 0x0BC40000, 0x0C710000, 0x0D120000,
 	0x0DA70000, 0x0E2E0000, 0x0EA50000, 0x0F0D0000, 0x0F630000, 0x0FA60000, 0x0FD70000, 0x0FF50000,
 	0x0FFF0000, 0x0FF50000, 0x0FD70000, 0x0FA60000, 0x0F630000, 0x0F0D0000, 0x0EA50000, 0x0E2E0000,
 	0x0DA70000, 0x0D120000, 0x0C710000, 0x0BC40000, 0x0B0F0000, 0x0A510000, 0x098E0000, 0x08C80000,
 	0x07FF0000, 0x07360000, 0x06700000, 0x05AD0000, 0x04EF0000, 0x043A0000, 0x038D0000, 0x02EC0000,
 	0x02570000, 0x01D00000, 0x01590000, 0x00F10000, 0x009B0000, 0x00580000, 0x00270000, 0x00090000,
 	0x00000000, 0x00090000, 0x00270000, 0x00580000, 0x009B0000, 0x00F10000, 0x01590000, 0x01D00000,
 	0x02570000, 0x02EC0000, 0x038D0000, 0x043A0000, 0x04EF0000, 0x05AD0000, 0x06700000, 0x07360000  
	};


/*********************************************************************************************/
void main(void)
{
 uint32 i;
 SysClkInit();
 DACInit();

 while(1)
  {
   DAC0DAT=SinTable[i];  //DAC0产生正弦波
   DAC1DAT=i<<(6+16);	 //DAC1产生锯齿波
   if(i&0x20)			
    {
	 DAC2DAT=2*(0x3F<<22)-2*(i<<22);	 //DAC2产生三角波
	 DAC3DAT=0x0FFF0000;				 //DAC3产生方波
	}
   else
    {
	 DAC2DAT=2*(i<<22);
	 DAC3DAT=0x00000000;
	}
   i++;
   i&=0x3F;
  }

}
///////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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