ADIS16130的主函数
0赞
发表于 11/1/2011 6:08:00 PM
阅读(2667)
#includeextern 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); }
