Pages: [1]   Go Down
Author Topic: CAMBIAR LA FORMA DE PROGRAMAR  (Read 395 times)
0 Members and 1 Guest are viewing this topic.
Dos Hermanas( Sevilla)
Offline Offline
Jr. Member
**
Karma: 2
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola a todos.
tengo un sim900 y la forma que tengo para saber quien me llama es esta,

if(SIM900.available() >0)
  {   
    inchar=SIM900.read();
    //ShowSerialData();
    if (inchar=='6')
    {
      delay(10);
      inchar=SIM900.read();
      if (inchar=='0')
      {
        delay(10);
        inchar=SIM900.read();
        if (inchar=='0')
        {
          delay(10);
          inchar=SIM900.read();
          if (inchar=='1')
          {
            delay(10);
            inchar=SIM900.read();
            if (inchar=='1')
            {
              delay(10);
              inchar=SIM900.read();
              if (inchar=='1')
              {
                delay(10);
                inchar=SIM900.read();
                if (inchar=='1')
                {
                  delay(10);
                  inchar=SIM900.read();
                  if (inchar=='5')
                  {
                    delay(10);
                    inchar=SIM900.read();
                    if (inchar=='1')
                    {
                                                                 
                        Serial.println("do sometehing");
                        Serial.println("Llamada entrante...");
                        delay(10);

Alguien sabe como cambiar  esta programacion a algo mas elegante y simple?
muchas gracias de antemano
un saludo
Logged

Barcelona
Offline Offline
Jr. Member
**
Karma: 0
Posts: 67
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola pincho41700.


Prueba con estas lineas de código en la que se utiliza un puntero.

Code:
void loop(){
if (SIM900.available()>0)
  {
  char lectura[10];                                // array de char o String
  char *_lectura=lectura; // creamos un puntero a lectura llamado _lectura
     while(SIM900.available()>0){  // mientras tengamos un char en el bufer
    *_lectura++=SIM900.read(); // llamamos al *_lectura y  metemos el char,  
//al mismo tiempo subimos una posición en el array
 delay(3);   // le damos un tiempo de espera para que no se pierda ningún char del bufer
    }
*_lectura='\0';                                     // añadimos carácter nulo
Serial.println("Llamada entrante...");
Serial.println(lectura);
  }
}



Espero que te sea de ayuda

Saludos
« Last Edit: April 21, 2014, 04:34:27 am by pacoooh » Logged

Dos Hermanas( Sevilla)
Offline Offline
Jr. Member
**
Karma: 2
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

muchas gracias por contestar pacoooh,
esta noche lo probare  a ver que tal,
Porque creas un puntero para trabajar con el array?
es necesario o se puede hacer de otra manera?
un saludo.
Logged

Barcelona
Offline Offline
Jr. Member
**
Karma: 0
Posts: 67
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola pincho41700

Pues no es necesario el crear el puntero, son manías mías para poder recorrer arrays mediante "++" o "--"

Prueba este otro código es  el mismo

Code:
void loop(){
if (SIM900.available()>0)
  {
 char lectura[10];   // array de char
 byte pos;          // creamos un puntero  para saber donde meter el char                  
                  
     while(SIM900.available()>0){  // mientras tengamos un char en el bufer
    lectura[pos]= SIM900.read() ; // llamamos al  lectura y  metemos el char en su posición
    pos=pos+1;      //   subimos una posición en el array    
                                                                
 delay(3);    // le damos un tiempo de espera para que no se pierda ningún char del bufer
    }
lectura[pos]='\0';
 
Serial.println("Llamada entrante...");
Serial.println(lectura);
  }
}



saludos
« Last Edit: April 21, 2014, 07:27:51 am by pacoooh » Logged

Dos Hermanas( Sevilla)
Offline Offline
Jr. Member
**
Karma: 2
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola de nuevo,
muchas gracias, lo probare y te digo como funciona
un saludo
Logged

Dos Hermanas( Sevilla)
Offline Offline
Jr. Member
**
Karma: 2
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola de nuevo,
pacooh funciona perfectamente
muchas gracias
un saludo
Logged

Pages: [1]   Go Up
Jump to: