freedomhit

利用ADuC7026,ADXL345通讯主程序

0
阅读(4081)

 

#include 
#include "XL345.h"
#include "Common.h"

void delay(int i){
    while(i)i--;
}

void putchar(unsigned char ch)/* Write character to Serial Port  */  
{          
	COMTX = ch;				 //COMTX is an 8-bit transmit register.
    while(!(0x020==(COMSTA0 & 0x020)))
    {;}
}

void IRQ_Handler() __irq
{
	if(0 != (IRQSTA & UART_BIT))			//UART Interrupt
	{
		UartInterrupt = COMIID0 ;
	}
	else if(0 != (IRQSTA & XIRQ0_BIT))	//IRQ0 Interrupt
    {  
		xl345Read(6,XL345_DATAX0,buf);
	}

}

void ADuC7026_Initiate(void)
{

//  PLL SETTING  //
	POWKEY1 = 0x01;				//Start PLL setting
	POWCON = 0x00;				//Set PLL active mode with CD = 0
	POWKEY2 = 0xF4;				//Finish PLL setting

//  GPIO SETTING  //
	GP1CON = 0x00002211;		//Config P1.7 as GPIO P1.7(CS3), P1.1 P1.O as Com, P1.2 P1.3 as I2C, P1.6 P1.5 P1.4 as GPIO
	GP2CON = 0x00000000;		//Config P2.7, P2.6, P2.5, P2.0 as GPIO
	GP1DAT = 0xD0800000;		//P1.6 SDO,P1.5 SDI,P1.4 SCLK  LOW	 P1.7(CS3) HIGH
	GP2DAT = 0xE1E10000;		//P2.7 (CS4)  P2.6(CS2) P2.5(CS1) HIGH, P2.0(EN) Output

//UART Initial,Baud Rate = 115200
	COMCON0 = 0x80;					
   	COMDIV0 = 0x0B;
	COMDIV1 = 0x00;
   	COMCON0 = 0x07;					
  	COMDIV2 = 0x883E;

	//I2C Initial
	I2C1CFG = 0x00000082;       // Master Enable & Enable Generation of Master Clock
	I2C1DIV = 0x3232;        	// 0x3232 = 400kHz	0xCFCF = 100kHz

    //Interrupt Set Up
    FIQEN = SM_MASTER1_BIT;		//I2C1 Master Interrupt

	COMIEN0 = 0x01;				//Enable Receive Buffer Full Interrupt					
	IRQEN = UART_BIT;			//Enable UART Interrupt
}

int  main(void)
{								 
    ADuC7026_Initiate();		//ADuC7026 Initialization

	while(1)
	{;}
}