Salut !
J'ai un soucis avec mon programme: en fait, ce programme sera sur un microcontrôleur pic qui va servir de "module central" à notre projet.
L'idée est de pouvoir gérer la fréquence cardiaques de moutons, envoyées par des colliers équipés de modules radio.
La fréquence cardiaque de chaque mouton est envoyée avec ce modèle:
[ID][Fréquence]
Le tout est récupéré via une boucle dans le programme principal (qui va attendre de recevoir des caractères).
Ma question: comment faire pour transformer la fréquence qui sera reçue dans le tableau heart_rate[0-2] en quelque chose d'exploitable ? (par exemple: '1' '2' '0' ==> '120').
Merci !
Juste au cas où, je rajoute le programme du collier (en passant, pas sûr du type de variable utilisé !).
J'ai un soucis avec mon programme: en fait, ce programme sera sur un microcontrôleur pic qui va servir de "module central" à notre projet.
L'idée est de pouvoir gérer la fréquence cardiaques de moutons, envoyées par des colliers équipés de modules radio.
La fréquence cardiaque de chaque mouton est envoyée avec ce modèle:
[ID][Fréquence]
Le tout est récupéré via une boucle dans le programme principal (qui va attendre de recevoir des caractères).
Ma question: comment faire pour transformer la fréquence qui sera reçue dans le tableau heart_rate[0-2] en quelque chose d'exploitable ? (par exemple: '1' '2' '0' ==> '120').
Merci !
Code:
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
#include <16f877A.h>
#fuses HS,NOWDT,NOPROTECT,PUT,NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#include "LCDPICDEM2006.c"
// Variables //////////////////////////////////////////////////////////////////////////////
const int nbrmouton = 1; // A remplacer par le nombre de moutons (1 à 9)
char heart_rate[3];
int i;
int TempID;
int TempBPM;
struct tab_MOUTONS{
int ID;
char BPM;
}MOUTONS[nbrmouton];
// Programme principal ////////////////////////////////////////////////////////////////////
void main()
{
lcd_init();
for (i = 0 ; i <= nbrmouton ; i++)
{
MOUTONS[i].ID = i;
}
while(TRUE)
{
TempID = getch();
for (i = 0 ; i < 3 ; i++)
{
heart_rate[i] = getch();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
Juste au cas où, je rajoute le programme du collier (en passant, pas sûr du type de variable utilisé !).
Code:
#include <16f877A.h>
#fuses HS,NOWDT,NOPROTECT,PUT,NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#use I2C(master, sda=PIN_C4, scl=PIN_C3,FORCE_HW)
#include "LCDPICDEM2006.c"
const char IDmouton = 1; // A remplacer par l'ID du mouton entre 1 et 9
char heart_rate;
// Programme principal
void main()
{
lcd_init();
while(TRUE)
{
i2c_start();
i2c_write(0xA1);
heart_rate = i2c_read(0);
i2c_stop();
lcd_gotoxy(1,1);
printf(lcd_putc, "\fFrequence:\n%c BPM",heart_rate); // Affiche la fréquence sur le LCD
printf("%c%c",IDmouton, heart_rate); // Fréquence envoyée au module central
delay_ms(1000);
}
}
Dernière édition: