freedomhit

ADIS16130的主函数

0
阅读(2667)
#include 

extern volatile unsigned char TIMER1_FLAG;

//-------Reset vectors for the following interupt handlers---------------------
void Undef_Handler() __irq
{	
	RSTSTA = 0x04;				// SW RESET
}
void SWI_Handler() __irq
{	
	RSTSTA = 0x04;				// SW RESET
}
void PAbt_Handler() __irq	
{	
	RSTSTA = 0x04;				// SW RESET
}
void DAbt_Handler() __irq 	
{	
	RSTSTA = 0x04;				// SW RESET
}

void FIQ_Handler() __irq 
{

}

void IRQ_Handler() __irq 
{
	// Timer 1 IRQ (General Purpose timer) used for
	if (IRQSIG & GP_TIMER_BIT)			// T1 IRQ?
	{
		T1CLRI = 0xFF;	 				// Clearing Timer1 Interrupt							
		TIMER1_FLAG = 1; 				// set timer flag to signal timer interrupt
	}
}

 


#include
#define CR 0x0D

void UART_Initiate()
{
	GP1CON |= 0x011;           
	// Setting up UART at 9600 (CD=0)
	COMCON0 = 0x80;				// Setting DLAB
	COMDIV0 = 0x88;				// 
   	COMDIV1 = 0x00;
   	COMCON0 = 0x07;				// Clearing DLAB
}

 void senddata(int to_send)
{
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = 0x0A;						// output LF 
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = 0x0D;						// output CR 
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = ((to_send >> 8) & 0xFF);	 
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = ((to_send) & 0x0FF);						
	
}

void sendfloatdata(float *data)
{
	char buffer[4];
	char *p;
	int i = 0;

	p = (char*)data;
	while(! (0x020 == (COMSTA0 & 0x020)))
	{}
	COMTX =0x0A;
	for (i = 0;i<4;i++)
	{
		buffer[i] = *p;
		p++;
	
		while(! (0x020 == (COMSTA0 & 0x020)))
		{}
		COMTX =buffer[i];
	}
}

void delay (int timer)
{
	while(timer >= 0)  timer--;
	
}

int putchar(int ch)  {                   /* Write character to Serial Port  */

	if (ch == '\n')  {
    	while(!(0x020==(COMSTA0 & 0x020)))
    	{}
		COMTX = CR;							/* output CR */
		}
    while(!(0x020==(COMSTA0 & 0x020)))
    {}
 
 	return (COMTX = ch);
}