Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 147 → Rev 150

/PIC Stuff/PIC_27J13/uart.c
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