Pages: [1]   Go Down
Author Topic: Arduino Ethernet e valori falsificati  (Read 563 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 2
Posts: 223
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
Ho creato questo semplice codice per la connessione di arduino a internet con l'ethernet shield, controllo di un led e controllo di sei micro con incremento e decremento,tre incremento -  tre decremento di tre variabili.Faccio la stampa tramite interfaccia browser e ogni volte che la pagina si aggiorna mi mostre le tre variabili incrementate anche senza aver premuto i pulsanti.Sto facendo una prova così senza pull-down e senza connessione del micro alla GND.E' per questo motivo che esse si incrementano?Intanto il codice è questo

Code:

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

 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 5 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
String readString;
 const short int ButtonPinuno = 3;        //pin pulsante incremento
const short int ButtonPindue = 5;    //pin pulsante decremento
int CurrentStateuno;                  //variabile per lo stato uno corrente
int LastStateuno = 0;                //variabile per l'ultimo stato uno
int CurrentStatedue;                  //variabile per lo stato due corrente
int LastStatedue = 0;            //variabile per l'ultimo stato due
int short contprima = 0;          //Holds number of button presses.
const short int ButtonPintre = 6;        //pin pulsante incremento
const short int ButtonPinquattro = 7; //pin pulsante decremento
int CurrentStatetre;                  //variabile per lo stato uno corrente
int LastStatetre = 0;                //variabile per l'ultimo stato uno
int CurrentStatequattro;              //variabile per lo stato due corrente
int LastStatequattro = 0;            //variabile per l'ultimo stato due
int short contseconda = 0;          //Holds number of button presses
const short int ButtonPincinque =8 ;        //pin pulsante incremento
const short int ButtonPinsei  = 9; //pin pulsante decremento
int CurrentStatecinque;              //variabile per lo stato uno corrente
int LastStatecinque = 0;              //variabile per l'ultimo stato uno
int CurrentStatesei;                  //variabile per lo stato due corrente
int LastStatesei = 0;                //variabile per l'ultimo stato due
int short contterza = 0;            //Holds number of button presses
//////////////////////
 
void setup(){
 

  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();

  Serial.begin(9600);
  Serial.println("server LED test 1.0"); // so I can keep track of what is loaded
}
 
void loop(){
  CheckButton();
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100) {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
        }
 
        //if HTTP request has ended
        if (c == '\n') {
 
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging
 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
 
          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
          client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
          client.print("<meta http-equiv=\"refresh\" content=\"2\">");
          client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />");
          client.println("<TITLE>Home Automation</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");
          client.println("<H1>Home Automation</H1>");
          client.println("<hr />");
          client.println("<br />");
          client.println("<a href=\"/?lighton\"\">Turn On Light</a>");
          client.println("<a href=\"/?lightoff\"\">Turn Off Light</a><br />");  
          client.println("<hr />");      
          client.println("<H1>Dati Micro</H1>");
          client.println(contprima);
                    client.println(contseconda);
                              client.println(contterza);
          client.println("<br />");
          client.println("<hr />");
                    client.println("<H1>Questa pagina si aggiorna ogni 2 secondi</H1>");
          client.println("</BODY>");
          client.println("</HTML>");
 
          delay(1);
          //stopping client
          client.stop();
 
          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton") >0)//checks for on
          {
            digitalWrite(6, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          else{
          if(readString.indexOf("?lightoff") >0)//checks for off
          {
            digitalWrite(6, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          }
          //clearing string for next read
          readString="";
 
        }
      }
    }
  }
}
void CheckButton(void){
 CurrentStateuno = digitalRead(ButtonPinuno);          
 CurrentStatedue = digitalRead(ButtonPindue);        
 CurrentStatetre = digitalRead(ButtonPintre);          
 CurrentStatequattro = digitalRead(ButtonPinquattro);    
 CurrentStatecinque = digitalRead(ButtonPincinque);  
 CurrentStatesei = digitalRead(ButtonPinsei);
 delay(10);  // debounce                                                

 if(CurrentStateuno != LastStateuno)
 {
   if(CurrentStateuno == LOW)
   {
     contprima++;
   }
 }
 LastStateuno = CurrentStateuno;

 if(CurrentStatedue != LastStatedue)
 {
   if(CurrentStatedue == LOW)
   {
     contprima--;
   }
 }
 LastStatedue = CurrentStatedue;

 if(CurrentStatetre != LastStatetre)
 {
   if(CurrentStatetre == LOW)
   {
     contseconda++;
   }
 }
 LastStatetre = CurrentStatetre;

 if(CurrentStatequattro != LastStatequattro)
 {
   if(CurrentStatequattro == LOW)
   {
     contseconda--;
   }
 }
 LastStatequattro = CurrentStatequattro;

 if(CurrentStatecinque != LastStatecinque)
 {
   if(CurrentStatecinque == LOW)
   {
     contterza++;
   }
 }
 LastStatecinque = CurrentStatecinque;

 if(CurrentStatesei != LastStatesei)
 {
   if(CurrentStatesei == LOW)
   {
     contterza--;
   }
 }
 LastStatesei = CurrentStatesei;
}


* LOL.PNG (5.25 KB, 1363x114 - viewed 9 times.)
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 269
Posts: 21840
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Sto facendo una prova così senza pull-down e senza connessione del micro alla GND.
Non so cosa sono per Te dei "micro".
Entrate non collegate a niente sentono i disturbi elettromegnetici e legono cose in modo casuale a seconda del grado di inquinamento elettrico.
Usa F() per il client.pint
Ciao  Uwe
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7179
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'inizializzazione della Ethernet così
Code:
Ethernet.begin(mac, ip, gateway, subnet);
è errata.

Se vuoi usare 4 parametri per l'inizializzazione, ne devi mettere comunque cinque.  smiley-roll-blue
Code:
Ethernet.begin(mac, ip, gateway, gateway, subnet);
perchè il 4° parametro non è la subnet ma il gateway
Code:
Ethernet.begin(mac, ip, dns, gateway);
mentre con 5 è
Code:
Ethernet.begin(mac, ip, dns, gateway, subnet);
« Last Edit: April 11, 2013, 03:29:23 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3426
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai 27 byte sprecati  smiley-eek-blue, cambia quegli int in byte se alla fine devi solo indicare i numeri dei pin e memorizzare lo stao 0/1
Inoltre hai 6 pulsanti pin 3-5-6-7-8-9... come fa a funzionare senza aver messo nel setup i pinmode in input?

ciao
« Last Edit: April 11, 2013, 04:11:44 am by pablos » Logged

no comment

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7179
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai 27 byte sprecati  smiley-eek-blue

Veramente utilizzando la F() nei print recupera, in RAM, molto più spazio.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3426
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io mi riferivo alla ram occupata in modo permanente, le variabili pin possono essere messe nel setup e risparmia 12 byte, le altre 15 var dichiarate come int le potrebbe modificare in byte recuperando altri 15 byte.

Code:
pinMode(3, INPUT)

Code:
CurrentStateuno = digitalRead(ButtonPinuno);  
in
CurrentStateuno = digitalRead(3);  

Purtroppo negli esempi c'è il brutto vizio di mettere tutti i pin in integer e non solo ... pure pubblici, per poi usarli una volta sola nel setup e basta, secondo me è un brutto esempio per chi non conosce un po' di programmazione, specie se si ha a che fare con un micro mooolto limitato.  

ciao
« Last Edit: April 11, 2013, 05:31:52 am by pablos » Logged

no comment

Offline Offline
Full Member
***
Karma: 2
Posts: 223
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi ho sistemato lo sketch, ditemi se ora va meglio

Code:
//simple button GET server code to control servo and arduino pin 5
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html
//for use with W5100 based ethernet shields
//Powering a servo from the arduino usually DOES NOT WORK.
//note that the below bug fix may be required
// http://code.google.com/p/arduino/issues/detail?id=605
 
#include <SPI.h>
#include <Ethernet.h>
 

 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 5 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
String readString;
byte ButtonPinuno = 3;        //pin pulsante incremento
byte ButtonPindue = 5;    //pin pulsante decremento
byte CurrentStateuno;                  //variabile per lo stato uno corrente
byte LastStateuno = 0;                //variabile per l'ultimo stato uno
byte CurrentStatedue;                  //variabile per lo stato due corrente
byte LastStatedue = 0;            //variabile per l'ultimo stato due 
byte ButtonPintre = 6;        //pin pulsante incremento
byte ButtonPinquattro = 7; //pin pulsante decremento
byte CurrentStatetre;                  //variabile per lo stato uno corrente
byte LastStatetre = 0;                //variabile per l'ultimo stato uno
byte CurrentStatequattro;              //variabile per lo stato due corrente
byte LastStatequattro = 0;            //variabile per l'ultimo stato due        //Holds number of button presses
byte ButtonPincinque =8 ;        //pin pulsante incremento
byte ButtonPinsei  = 9; //pin pulsante decremento
byte CurrentStatecinque;              //variabile per lo stato uno corrente
byte LastStatecinque = 0;              //variabile per l'ultimo stato uno
byte CurrentStatesei;                  //variabile per lo stato due corrente
byte LastStatesei = 0;                //variabile per l'ultimo stato due
int contprima = 0;          //Holds number of button presses.
int contseconda = 0;   //Holds number of button presses
int short contterza = 0;            //Holds number of button presses
//////////////////////
 
void setup(){
 
pinMode(ButtonPinuno,INPUT);   
 pinMode(ButtonPindue,INPUT);   
 pinMode(ButtonPintre,INPUT);     
 pinMode(ButtonPinquattro,INPUT);     
 pinMode(ButtonPincinque,INPUT);     
 pinMode(ButtonPinsei,INPUT);     

  //start Ethernet
  Ethernet.begin(mac, ip, dns, gateway, subnet);
  server.begin();
  //the pin for the servo co
  //enable serial data print
  Serial.begin(9600);
  Serial.println("server LED test 1.0"); // so I can keep track of what is loaded
}
 
void loop(){
  CheckButton();
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100) {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
        }
 
        //if HTTP request has ended
        if (c == '\n') {
 
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging
 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
 
          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
          client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
          client.print("<meta http-equiv=\"refresh\" content=\"2\">");
          client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />");
          client.println("<TITLE>Home Automation</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");
          client.println("<H1>Home Automation</H1>");
          client.println("<hr />");
          client.println("<br />");
          client.println("<a href=\"/?lighton\"\">Turn On Light</a>");
          client.println("<a href=\"/?lightoff\"\">Turn Off Light</a><br />"); 
          client.println("<hr />");     
          client.println("<H1>Dati Micro</H1>");
          client.println(contprima);
                    client.println(contseconda);
                              client.println(contterza);
          client.println("<br />");
          client.println("<hr />");
                    client.println("<H1>Questa pagina si aggiorna ogni 2 secondi</H1>");
          client.println("</BODY>");
          client.println("</HTML>");
 
          delay(1);
          //stopping client
          client.stop();
 
          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton") >0)//checks for on
          {
            digitalWrite(6, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          else{
          if(readString.indexOf("?lightoff") >0)//checks for off
          {
            digitalWrite(6, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          }
          //clearing string for next read
          readString="";
 
        }
      }
    }
  }
}
void CheckButton(void){
 CurrentStateuno = digitalRead(ButtonPinuno);           
 CurrentStatedue = digitalRead(ButtonPindue);         
 CurrentStatetre = digitalRead(ButtonPintre);           
 CurrentStatequattro = digitalRead(ButtonPinquattro);     
 CurrentStatecinque = digitalRead(ButtonPincinque);   
 CurrentStatesei = digitalRead(ButtonPinsei);
 delay(10);  // debounce                                                 

 if(CurrentStateuno != LastStateuno)
 {
   if(CurrentStateuno == LOW)
   {
     contprima++;
   }
 }
 LastStateuno = CurrentStateuno;

 if(CurrentStatedue != LastStatedue)
 {
   if(CurrentStatedue == LOW)
   {
     contprima--;
   }
 }
 LastStatedue = CurrentStatedue;

 if(CurrentStatetre != LastStatetre)
 {
   if(CurrentStatetre == LOW)
   {
     contseconda++;
   }
 }
 LastStatetre = CurrentStatetre;

 if(CurrentStatequattro != LastStatequattro)
 {
   if(CurrentStatequattro == LOW)
   {
     contseconda--;
   }
 }
 LastStatequattro = CurrentStatequattro;

 if(CurrentStatecinque != LastStatecinque)
 {
   if(CurrentStatecinque == LOW)
   {
     contterza++;
   }
 }
 LastStatecinque = CurrentStatecinque;

 if(CurrentStatesei != LastStatesei)
 {
   if(CurrentStatesei == LOW)
   {
     contterza--;
   }
 }
 LastStatesei = CurrentStatesei;
}
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7179
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vedi così
Code:
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {
  192, 168, 1, 5 }; // ip in lan
byte gateway[] = {
  192, 168, 1, 1 }; // internet access via router
byte subnet[] = {
  255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port

String readString;
const byte ButtonPinuno = 3;        //pin pulsante incremento
const byte ButtonPindue = 5;    //pin pulsante decremento
byte CurrentStateuno;                  //variabile per lo stato uno corrente
byte LastStateuno = 0;                //variabile per l'ultimo stato uno
byte CurrentStatedue;                  //variabile per lo stato due corrente
byte LastStatedue = 0;            //variabile per l'ultimo stato due 
const byte ButtonPintre = 6;        //pin pulsante incremento
const byte ButtonPinquattro = 7; //pin pulsante decremento
byte CurrentStatetre;                  //variabile per lo stato uno corrente
byte LastStatetre = 0;                //variabile per l'ultimo stato uno
byte CurrentStatequattro;              //variabile per lo stato due corrente
byte LastStatequattro = 0;            //variabile per l'ultimo stato due        //Holds number of button presses
const byte ButtonPincinque =8 ;        //pin pulsante incremento
const byte ButtonPinsei  = 9; //pin pulsante decremento
byte CurrentStatecinque;              //variabile per lo stato uno corrente
byte LastStatecinque = 0;              //variabile per l'ultimo stato uno
byte CurrentStatesei;                  //variabile per lo stato due corrente
byte LastStatesei = 0;                //variabile per l'ultimo stato due
int contprima = 0;          //Holds number of button presses.
int contseconda = 0;   //Holds number of button presses
int short contterza = 0;            //Holds number of button presses
//////////////////////

void setup(){

  pinMode(ButtonPinuno,INPUT);   
  pinMode(ButtonPindue,INPUT);   
  pinMode(ButtonPintre,INPUT);     
  pinMode(ButtonPinquattro,INPUT);     
  pinMode(ButtonPincinque,INPUT);     
  pinMode(ButtonPinsei,INPUT);     

  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print
  Serial.begin(9600);
  Serial.println(F("server LED test 1.0")); // so I can keep track of what is loaded
}

void loop(){
  CheckButton();

  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string
          readString += c;
          //Serial.print(c);
        }

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //print to serial monitor for debuging

            client.println(F("HTTP/1.1 200 OK")); //send new page
          client.println(F("Content-Type: text/html"));
          client.println();
          client.println(F("<HTML>"));
          client.println(F("<HEAD>"));
          client.println(F("<meta name='apple-mobile-web-app-capable' content='yes' />"));
          client.println(F("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />"));
          client.print(F("<meta http-equiv=\"refresh\" content=\"2\">"));
          client.println(F("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />"));
          client.println(F("<TITLE>Home Automation</TITLE>"));
          client.println(F("</HEAD>"));
          client.println(F("<BODY>"));
          client.println(F("<H1>Home Automation</H1>"));
          client.println(F("<hr />"));
          client.println(F("<br />"));
          client.println(F("<a href=\"/?lighton\"\">Turn On Light</a>"));
          client.println(F("<a href=\"/?lightoff\"\">Turn Off Light</a><br />")); 
          client.println(F("<hr />"));     
          client.println(F("<H1>Dati Micro</H1>"));
          client.println(contprima);
          client.println(contseconda);
          client.println(contterza);
          client.println(F("<br />"));
          client.println(F("<hr />"));
          client.println(F("<H1>Questa pagina si aggiorna ogni 2 secondi</H1>"));
          client.println(F("</BODY>"));
          client.println(F("</HTML>"));

          delay(1);
          //stopping client
          client.stop();

          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton") >0)//checks for on
          {
            digitalWrite(6, HIGH);    // set pin 4 high
            Serial.println(F("Led On"));
          }
          else{
            if(readString.indexOf("?lightoff") >0)//checks for off
            {
              digitalWrite(6, LOW);    // set pin 4 low
              Serial.println(F("Led Off"));
            }
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}

void CheckButton(void){
  CurrentStateuno = digitalRead(ButtonPinuno);           
  CurrentStatedue = digitalRead(ButtonPindue);         
  CurrentStatetre = digitalRead(ButtonPintre);           
  CurrentStatequattro = digitalRead(ButtonPinquattro);     
  CurrentStatecinque = digitalRead(ButtonPincinque);   
  CurrentStatesei = digitalRead(ButtonPinsei);
  delay(10);  // debounce                                                 

  if(CurrentStateuno != LastStateuno)
  {
    if(CurrentStateuno == LOW)
    {
      contprima++;
    }
  }
  LastStateuno = CurrentStateuno;

  if(CurrentStatedue != LastStatedue)
  {
    if(CurrentStatedue == LOW)
    {
      contprima--;
    }
  }
  LastStatedue = CurrentStatedue;

  if(CurrentStatetre != LastStatetre)
  {
    if(CurrentStatetre == LOW)
    {
      contseconda++;
    }
  }
  LastStatetre = CurrentStatetre;

  if(CurrentStatequattro != LastStatequattro)
  {
    if(CurrentStatequattro == LOW)
    {
      contseconda--;
    }
  }
  LastStatequattro = CurrentStatequattro;

  if(CurrentStatecinque != LastStatecinque)
  {
    if(CurrentStatecinque == LOW)
    {
      contterza++;
    }
  }
  LastStatecinque = CurrentStatecinque;

  if(CurrentStatesei != LastStatesei)
  {
    if(CurrentStatesei == LOW)
    {
      contterza--;
    }
  }
  LastStatesei = CurrentStatesei;
}
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Purtroppo negli esempi c'è il brutto vizio di mettere tutti i pin in integer e non solo ... pure pubblici, per poi usarli una volta sola nel setup e basta, secondo me è un brutto esempio per chi non conosce un po' di programmazione, specie se si ha a che fare con un micro mooolto limitato.  
Questo è vero, in diversi esempi allegati all'IDE c'è un uso un po' alla leggera dei tipi dei dati. Così però si passa il messaggio che sia il "modo giusto" mentre in realtà andrebbe fatto vedere fin da subito il "giusto modo".
Il classicissimo esempio "Blink" esordisce con:
Code:
int led = 13;
Compilato da 1084 byte.

Se si mette
Code:
const byte led = 13;
Compilato si ottiene un valore di 1076 byte, ben 8 byte di Flash risparmiata per 1 semplice pin, senza parlare della RAM.
Logged


Offline Offline
Full Member
***
Karma: 2
Posts: 223
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho imparato la lezione.D oggi utilizzerò meglio gli int e i byte.Ragazzi devo fare un altra domanda:Apro un altro post o posto qui sempre?
Logged

Pages: [1]   Go Up
Jump to: