#include <xc.h>
#include "../headers/config.h"
#include"../headers/serial.h"
/*Configuration de la liaison série en mode 8 bits asynchrone: nécessite la broche RB7*/
void init_serial(void)
{
//8 bits asynchrone
//TX RB7
// Configuration pour la réception et l'émission
TRISBbits.TRISB7 = 0;
TXEN = 1;
SYNC = 0;
CREN = 1;
SPEN = 1;
// On fixe le baudrate à 9600 en supposant que la fréquence d'oscillation du microcontrôleur est de 16Mhz
SPBRGLbits.SPBRGL = 25;
SPBRGHbits.SPBRGH = 0;
TXEN = 1;
return;
}
/* permet d'envoyer un char, passé en argument, dans la liaison série*/
void send_byte(char byte)
{
TXREGbits.TXREG = byte;
//On attend la fin de la transmission
while(TXSTAbits.TRMT != 1)
{
}
}
/* Envoie un tableau de char dans la liaison série:
* *tab: tableau de char à envoyer
* nb_bytes: nombre de bytes à envoyer
*/
void send_data(char * tab, char nb_bytes)
{
int i = 0;
for(i = 0; i< nb_bytes; i++)
{
send_byte(tab[i]);
}
}
void send_string(char * string)
{
int i = 0;
while(string[i] != '\0')
{
send_byte(string[i]);
i++;
}
}