Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2180 → Rev 2181

/beta/Code Redesign killagreg/uart0.c
462,26 → 462,21
void Decode64(void)
{
uint8_t a,b,c,d;
uint8_t x,y,z;
uint8_t ptrIn = 3;
uint8_t ptrOut = 3;
uint8_t len = ReceivedBytes - 6;
 
while(len)
len/=4;
while(len--)
{
a = rxd_buffer[ptrIn++] - '=';
b = rxd_buffer[ptrIn++] - '=';
c = rxd_buffer[ptrIn++] - '=';
d = rxd_buffer[ptrIn++] - '=';
//if(ptrIn > ReceivedBytes - 3) break;
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) rxd_buffer[ptrOut++] = x; else break;
if(len--) rxd_buffer[ptrOut++] = y; else break;
if(len--) rxd_buffer[ptrOut++] = z; else break;
rxd_buffer[ptrOut++] = (a << 2) | (b >> 4);
rxd_buffer[ptrOut++] = ((b & 0x0f) << 4) | (c >> 2);
rxd_buffer[ptrOut++] = ((c & 0x03) << 6) | d;
}
pRxData = &rxd_buffer[3];
RxDataLen = ptrOut - 3;