#ifndef SERIAL_H
#define SERIAL_H

#include <pic18f4550.h>
#include <stdint.h>


// Prototipos de funciones
void init_uart(void);
void send_serial(const char *str);
void send_char(char c);
void send_uint8(uint8_t num);
void send_uint16(uint16_t num);
void send_uint32(uint32_t num);
void send_digits32(uint32_t num);
void send_int(int num);
void send_float(float num, uint8_t decimales);
void send_hex8(uint8_t num);
void send_hex16(uint16_t num);
void send_octal8(uint8_t num);
void send_octal16(uint16_t num);
void send_binary8(uint8_t num);
void send_binary16(uint16_t num);
void send_string(char *str);
char receive_serial(void);
void delay_ms(unsigned int ms); 
void delay_us(unsigned int us);
uint8_t serial_available(void);
char receive_serial(void);
void Serial_Write(const char *format, ...);
static uint8_t format_matches(const char **format, const char *match);
char* ftoa(float num, char* buffer, int precision);


#endif
