?? main.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 + -