collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]


Focos LED SMD por almamater
[16 de Dezembro de 2023, 14:12]


I Belive por dropes
[15 de Dezembro de 2023, 13:59]


Carga de corrente eletrónica ZPB30A1 60W por jm_araujo
[11 de Dezembro de 2023, 13:27]

Autor Tópico: Duvida sobre ciclo  (Lida 2578 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Duvida sobre ciclo
« em: 01 de Agosto de 2012, 17:07 »
Boas pessoal, estou a elaborar um programa para o arduino, porem esse programa é "muito grande" pois eu utilizo varias vezes uma determinada parte do código.

Primeiro pensei em fazer uma espécie de ciclo onde o chamava cada vez que quisesse executar aquela parte do código, o meu problema é que preciso de enviar enviar informação pela Ethernet logo preciso de "abrir a porta" em todos os ciclos o que acabava por não diminuir o código.

Depois pensei em criar uma variável do tipo String onde lhe atribua "a parte do código" que preciso, mas também não funciona.

Alguma diga?

Cumprimentos,
Wolfz

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #1 em: 01 de Agosto de 2012, 17:12 »
Usar funções, é para isso que as funções existem, para chamar pedaços de código repetitivo ao longo de um programa.
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Duvida sobre ciclo
« Responder #2 em: 01 de Agosto de 2012, 17:42 »
Devo estar a perceber mal. Qual a função que devo usar?

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Duvida sobre ciclo
« Responder #3 em: 01 de Agosto de 2012, 17:45 »
Deves de criar a tua propria função a qual irás chamar ao longo do codigo, para não repetires constantemente todas as instruções que tens de fazer.
Dronetech BlogThe Scientist and the Geek

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #4 em: 01 de Agosto de 2012, 17:45 »
Crias uma função com o teu código, presumo que não tenhas qualquer experiencia de programação, certo?
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Duvida sobre ciclo
« Responder #5 em: 01 de Agosto de 2012, 18:13 »
Ahhh!!! Lol, já percebi. Eu é que me expliquei mal xD
O que eu criei não foi ciclos xD foi mesmo função. Confundi-me.

O problema é que em todas as funções tenho que colocar esta linha de código e isso faz com não poupe espaço nenhum:
Código: [Seleccione]
EthernetClient client = server.available();

  if (client) {

    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    String vars;
    boolean sentHeader = false;

    while (client.connected()) {
      if (client.available()) {

        if(!sentHeader){
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          sentHeader = true;
        }

        char c = client.read();
        vars.concat(c);
        Serial.println(vars);

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #6 em: 01 de Agosto de 2012, 18:16 »
Mete esse código dentro de uma função então.
Avr fanboy

Offline Kcidade

  • Mini Robot
  • *
  • Mensagens: 70
Re: Duvida sobre ciclo
« Responder #7 em: 14 de Agosto de 2012, 18:27 »
Boas, eu ando com uma duvida do genero. eu queria fazer uma funçao do genero:


Código: [Seleccione]
void checkForClient(){
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        if(!sentHeader){
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          sentHeader = true;
        }
        char c = client.read();
        vars.concat(c);
           
            //  Login 
            if(vars.endsWith("\n")){
              client.println();
              client.println("<img src='http://alojaimagens.com/images/f7sb151hmcjjahyupaz0.jpg' style=\"position:fixed;left:3px;top:3px;width:397px;height:361px;z-index:1;padding:0;\">");
              client.println("<form method=get name=LED>");
              client.println("<input type=text name=C  style=\"position:fixed;left:39px;top:170px;width:313px;height:28px;z-index:1;padding:0;\">");
              client.println("<input type=""password"" name=C  style=\"position:fixed;left:39px;top:231px;width:313px;height:28px;z-index:1;padding:0;\">");
              client.println("<input type=submit value=submit style=\"position:fixed;left:250px;top:300px;width:118px;height:29px;z-index:1;padding:0;\"></form>");
              delay(1);
              client.stop();}
      }
    }
  }
}

Basicamente queria em vez de por a parte do login dentro de um ciclo mas para isso preciso do codigo anterior.

Alguma sugestão?