NXP_examples/debugTools.c
2021-07-01 14:34:34 +02:00

66 lines
1.2 KiB
C

/*
* debugTools.c
*
* Created on: 12. 10. 2020
* Author: Adcis
*/
#include "debugTools.h"
LPC_USART_T *DBG_USART;
void DebugInit(LPC_USART_T *pUART) {
DBG_USART = pUART;
/* Disable I/O buffering for STDOUT stream, so that
* chars are sent out as soon as they are printed. */
//setvbuf(stdout, NULL, _IONBF, 0);
}
void dbg_nl(){
Chip_UART_SendBlocking(DBG_USART, &"\n", 1);
}
void dbg(unsigned long n){//16.7
char operator = '+';
if(n > 4294967296/2){
n = 4294967296 - n;
operator = '-';
}
char tmp[11];
int i = sizeof(tmp);
for(int j = 0; j<i-1; j++){
tmp[j] = '0';
}
do
{
tmp[--i] = '0' + n % 10;
n /= 10;
} while (n);
Chip_UART_SendBlocking(DBG_USART, &operator, 1);
Chip_UART_SendBlocking(DBG_USART, &tmp, sizeof(tmp));
}
uint8_t intToAscii(uint8_t number){
if(number > 9){
return number + 55;
}
else{
return number + 48;
}
}
void dbg_ASCII(uint8_t *arr, int size){
for(int i = 0; i<size; i++){
uint8_t lo,hi;
lo = arr[i] & 0x0f;
hi = (arr[i] >> 4) & 0x0f;
hi = intToAscii(hi);
lo = intToAscii(lo);
Chip_UART_SendBlocking(DBG_USART, &hi, 1);
Chip_UART_SendBlocking(DBG_USART, &lo, 1);
Chip_UART_SendBlocking(DBG_USART, &" ", 1);
}
dbg_nl();
}