top of page

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include <string.h>
#include <time.h>
#include "../headers/config.h"
#include <math.h>
#include "../headers/spi.h"
#include "../headers/sram_MCP.h"
#include "../headers/serial.h"
#include "../headers/ballon_sonde.h"
 
 
float T;
 
 
char ligne[16];
int i;
 
void main(void){
  initPIC();
  //On initialise le microcontrôleur, la conversion analogique-numérique ainsi que les liaisons SPI et séries et le PWM:
  init_CAN();
  initSPI(0);
  initRAM();    
  init_serial();
  initPWM();
    
  while (1)
    {
      __delay_ms(100);
      /*pour chaque capteur on indique quelle broche est utilisée pour la CAN (init_capteur()); puis on réalise l'acquisition et on stocke le résultat sous la forme "T=300K" par exemple, dans le tableau de char ligne; on écrit ce dernier dans la SRAM puis on lit le résultat qu'on stocke à nouveau dans ligne; enfin, on transmet ligne à l'Arduino et on efface ligne.
      */
      init_accelerometre_x();
      accelerometre_x_CAN(ligne);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
            ligne[i]=0;
        }
      __delay_ms(100);
      init_accelerometre_y();
      accelerometre_y_CAN(ligne);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
            ligne[i]=0;
        }
     __delay_ms(100);
      init_accelerometre_z();
      accelerometre_z_CAN(ligne);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
          ligne[i]=0;
        }
      __delay_ms(100);
      init_thermistance();
      T = thermistance_CAN(ligne);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
         ligne[i]=0;
        }
      __delay_ms(100);
      init_hygrometre();
      hygrometre_CAN(ligne,T);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
         ligne[i]=0;
        }
      __delay_ms(100);
      init_pression();
      pression_CAN(ligne);
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
      for(i=0;i<16;i++)
        {
         ligne[i]=0;
        }
         
      init_particules();
      particules_CAN(ligne);
      send_string(ligne);
      for(i=0;i<16;i++)
    {
      ligne[i]=0;
    }
      changeDC1(50);
      
      write_tab_RAM(ligne, 16, 1, 0, 0);
      read_tab_RAM(ligne, 16,1,0,0);
      send_string(ligne);
          
    }
}
 
 
 
 

bottom of page