[Question] .c et .h ??

Bonjour à tous.

Je commence à avoir un sketch où c'est un peu le bordel et je voudrais savoir si il est possible de mettre ses fonctions dans un autre fichier ?

Bon journée,
Amicalement,
Ak-47

Bonjour,

Ak-47:
Je commence à avoir un sketch où c'est un peu le bordel et je voudrais savoir si il est possible de mettre ses fonctions dans un autre fichier ?

Oui tu peut sans probléme :wink:

Au choix :

  • Tu met tes fonctions dans un .c ou .cpp sans oublier de faire #include <Arduino.h> ou #include <WProgram.h> (suivant si tu est sous arduino 1.0 ou 002x) au debut du code, et tu met tout les prototypes de tes fonctions dans un .h, que tu inclut dans ton sketch principal.
  • Tu crée un nouveaux .pde (ou .ino) dans le même dossier que ton 1er skecth et tu relance l'ide, normalement tu aura un nouvel onglet d'ouvert :wink:

Merci beaucoup pour ta réponse :slight_smile:

Comme je suis pas super calé en info j'ai choisis la seconde solution ^^
Cependant j'ai un petit soucis pour l'affichage de mes pages web :frowning:

J'utilise ce code :

          switch(page){
          case 0: // affichage de la page Menu      
            Affichage_page_menu();
            break; // fin de case =0

et ma fonction Affichage_page_menu() ressemble à ça :

client.println(F("<body style=\"background : url(http://pasvyro9.jpg) fixed no-repeat;\">"));
          client.println(F("<center>"));
          client.println(F("<FORM method=\"get\" action=/>"));
          client.println(F("<p>"));
          client.println(F("<input src=\"http://i45.servimg.com/u/1.png\" type=\"image\" name=\"one\" >"));
          client.println(F("</p>"));
          client.println(F("</FORM>"));

le debuggeur me dit que client n'est pas définie mais si je rajoute :

Client client = serveurHTTP.available();

au début de ma fonction ça compile mais plus rien ne marche ...

Une idée ?
Amicalement,
Ak-47

Bonjour,

Il serait bien que tu nous donnes un petit peu plus d'informations.
Poste tes codes, dis nous si tu es en version 022 ou 1.0, etc etc :slight_smile:


Stéphane.

Bonjour

@Stephan

Mon code est assez simple je souhaite afficher des pages web dans mon navigateur :

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x4D, 0x7F };
byte ip[] = { 192, 168, 1, 10 };
byte passerelle[] = { 192,168,1,254 };
byte masque[] = { 255, 255, 255, 0 };
Server server(80);

void setup()
{
  delay(100);  // allow chip to hardware reset
  Ethernet.begin(mac, ip, passerelle, masque); 
  server.begin();
}

void loop()
{
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          // output the value of each analog input pin
          for (int i = 0; i < 6; i++) {
            client.print("analog input ");
            client.print(i);
            client.print(" is ");
            client.print(analogRead(i));
            client.println("
");
          }
          break;
        }
        if (c == '\n') {
          // we're starting a new line
          current_line_is_blank = true;
        } else if (c != '\r') {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
}

Et je souahiterais par exemple faire une fonction Affichag_page()

Affichage_page(){
         client.print("analog input ");
            client.print(i);
            client.print(" is ");
            client.print(analogRead(i));
            client.println("
");
}

Qui se trouve dans un autre .pde (merci skywodd)

Mais il me redemande de déclarer l'objet client dans la fonction et si je le fais ça compile mais ne fonctionne plus :frowning:

Tout bête il faut juste placer le client en paramètre de la fonction ^^

Si ça peut aider quelqu'un :

          switch(page){
          case 0: // affichage de la page Menu      
            Affichage_page_menu(client);
            break; // fin de case =0

et

void Affichage_page_menu(Client client)

Bon journée tout le monde !
Amicalement,
AK-47