155,6 → 155,39 |
#endif |
} |
|
void UART1_WriteF(float f, unsigned char m) { |
long whole = 0; |
unsigned long decimal = 0; |
unsigned int multiplier = 1; |
unsigned char i; |
|
for (i = 0; i < m; i++) |
multiplier *= 10; |
|
whole = (long)((float)f); |
decimal = (long)((float)f*multiplier) - whole*multiplier; |
// Round up if necessary |
if ((long)((float)f*multiplier*10) % 10 >= 5) |
decimal += 1; |
#ifdef _DEBUG |
sprintf((char *) uart_1_data_p->buffer_out, "%ld.%ld", whole, decimal); |
uart_1_data_p->buffer_out_len = strlen((char *) uart_1_data_p->buffer_out); |
uart_1_data_p->buffer_out_ind = 1; |
for (i = 0; i < uart_1_data_p->buffer_out_len; i++) { |
TXREG1 = uart_1_data_p->buffer_out[i]; |
Nop(); |
while (!PIR1bits.TX1IF); // Wait for byte to be transmitted |
} |
#else |
while (TXSTA1bits.TXEN); // Wait for previous message to finish sending |
sprintf((char *) uart_1_data_p->buffer_out, "%ld.%ld", whole, decimal); |
uart_1_data_p->buffer_out_len = strlen((char *) uart_1_data_p->buffer_out); |
uart_1_data_p->buffer_out_ind = 1; |
TXREG1 = uart_1_data_p->buffer_out[0]; // Put first byte in TSR |
TXSTA1bits.TXEN = 1; // Begin transmission |
#endif |
} |
|
void UART1_WriteB(const char *msg, unsigned char length) { |
unsigned char i; |
#ifdef _DEBUG |