All pastes #42525 Raw Edit

Caonex

public c v1 · immutable
#42525 ·published 2006-02-21 03:07 UTC
rendered paste body
/********************************************************************************//*File Name:                                                                    */  /***PIC18F2520.c                                                                */  /*------------------------------------------------------------------------------*/  /*Description:                                                                  *//***This program enables the PIC18F2520 to communicate with the 9XCite RF Module*//***and the Basic Atom 24.                                                      *//*------------------------------------------------------------------------------*//*Function:                                                                     *//***The PIC18F2520 must interpret and process the data received by the RF Module*/ /***at any given time and interrupt the Basic Atom in case of an important      *//***message. An important message will consist of information indicating that   *//***the enemy robot is in this robots personal territory. Also, this MCU will   *//***calculate for the Basic Atom, angle and distance information for any        *//***destination coordinate.                                                     *//*------------------------------------------------------------------------------*//*Authors:                                                                      *//***Iván C. Filpo                                                               *//***Cory D. Lawrence                                                            *//***Eduardo María Antonieta de las Maricas de hoy día                           *//********************************************************************************///The below declaration declares variables store the information received by the//9XCite RF Module. The 'o' stands for 'our', as in our theta for instance.//On the other hand, the init stands for initial. These are the initial coords#include <18f2520.h>#include <p18cxxx.h>#define ANGLE(A) A*360/255;#define XCOORD(X) X*6/255;#define YCOORD(Y) Y*8/255;#define BAUD_RATE(X) 20000000/16*X-1;/* Definition of Functions */void rfint(void);void changevector(void);/* Definition of Structures*/static int count,color;struct location{       int theta;       int x;       int y;}init,our,their;#pragma codevoid main(void){     /*If interrupts are desired, then set the RCIE bit and configure the RCIP, GIE/GIEH and     PEIE/GIEL bits, appropriately.*/          PIE1 = PIE1 | 0x20;     //Enable Usart Receive Interrupt     IPR1 = IPR1 | 0x20;     //Make it a high priority interrupt     INTCON = INTCON | 0x80; //Enable all hight priority unmasked interrupts     /*Set USART Baud Rate*/     /*Baud Rate = FOSC/(16(X+1)), X is value to be set in SPBRG register*/     TXSTA = TXSTA | 0x02;     SPBRG = BAUD_RATE(9600);}#pragma code high_vector=0x08void changevector(void){     _asm GOTO rfint _endasm}#pragma interrupt rfintvoid rfint(void){               switch(count){                 case 0:                     blue.theta = RCREG;                     count++;                     break;                case 1:                     red.theta = RCREG;                     count++;                     break;                case 2:                     blue.x = RCREG;                     count++;                     break;                case 3:                     red.x = RCREG;                     count++;                     break;                case 4:                     blue.x = (our.x << 8) | RCREG;                         count++;                     break;                case 5:                     red.x = (their.x << 8) | RCREG;                     count++;                     break;                case 6:                     blue.y = RCREG;                     count++;                     break;                case 7:                     red.y = RCREG;                     count++;                     break;         }                               }