void debugWrite( char *p ) { unsigned mycpsr; const char *pp = p; while ( 0 != *pp ) { pp = uart0Puts( pp ); mycpsr = disableIRQ(); WDFEED = 0xAA; WDFEED = 0x55; restoreIRQ( mycpsr ); } }
struct GPSpoint pollGPS(){ BYTE sent0 = (BYTE) (*U3RBR); BYTE sent1 = (BYTE) (*U3RBR); BYTE sent2 = (BYTE) (*U3RBR); BYTE sent3 = (BYTE) (*U3RBR); BYTE sent4 = (BYTE) (*U3RBR); BYTE sent5 = (BYTE) (*U3RBR); if(sent0 == '$' && sent1== 'G' && sent2== 'P'){ if(sent3 == 'G' && sent4 == 'G' && sent5 == 'A'){ uart0Puts("$GPGGA"); } else if(sent3 == 'G' && sent4 == 'S' && sent5 == 'V'){ uart0Puts("$GPGSV"); } else if(sent3 == 'G' && sent4 == 'S' && sent5 == 'A'){ uart0Puts("$GPGSA"); } else if(sent3 == 'R' && sent4 == 'M' && sent5 == 'C'){ uart0Puts("$GPRMC"); } else{ uart0Puts("$GPWTF"); return; } } else{ uart0Puts("F****D UP"); return; } BYTE LatDeg = (BYTE) *U3RBR; BYTE LatMin = (BYTE) *U3RBR; BYTE LatMinD = (BYTE) *U3RBR; BYTE LatSign = (BYTE) *U3RBR; BYTE LatDir = (BYTE) *U3RBR; BYTE LonDeg = (BYTE) *U3RBR; BYTE LonMin = (BYTE) *U3RBR; BYTE b0 = (BYTE) *U3RBR; BYTE b1 = (BYTE) *U3RBR; WORD LonMinD = (WORD) (b0 << 8) + b1; BYTE LonSign = (BYTE) *U3RBR; BYTE LonDir = (BYTE) *U3RBR; b0 = (BYTE) *U3RBR; b1 = (BYTE) *U3RBR; WORD wVal = (WORD) ((b0 << 8) + b1); }
void debugWritecrlf( char *p ) { debugWrite( p ); uart0Puts( "\r\n" ); }
//This function will print 'var' using the base 'base'. if opt is '1' then it will also print a new line after. void printvar(unsigned long var, unsigned int base, char opt){ char buff[65]; int i; buff[64] = 0; i = 63; do{ if( base==10 && ((64-i)%4 == 0) ){ buff[i--] = ','; } else if( base!=10 && (64-i)%5 == 0 ){ buff[i--] = ' '; } switch(var%base){ case 0: buff[i--] = '0'; break; case 1: buff[i--] = '1'; break; case 2: buff[i--] = '2'; break; case 3: buff[i--] = '3'; break; case 4: buff[i--] = '4'; break; case 5: buff[i--] = '5'; break; case 6: buff[i--] = '6'; break; case 7: buff[i--] = '7'; break; case 8: buff[i--] = '8'; break; case 9: buff[i--] = '9'; break; case 10: buff[i--] = 'A'; break; case 11: buff[i--] = 'B'; break; case 12: buff[i--] = 'C'; break; case 13: buff[i--] = 'D'; break; case 14: buff[i--] = 'E'; break; case 15: buff[i--] = 'F'; break; } var /= base; }while(var > 0); if(base==16){ for(;i > 54; i--){ if( (64-i)%5 == 0 ) buff[i--] = ' '; buff[i] = '0'; } buff[i--]='x'; buff[i]='0'; } else if(base==2){ for(;i > 24; i--){ if( (64-i)%5 == 0 ) buff[i--] = ' '; buff[i] = '0'; } buff[i] = 'b'; } else i++; uart0Puts(&(buff[i])); switch(opt){ case 1: uart0Puts("\r\n"); break; case 2: uart0Puts("\t"); break; default: break; } }