Arduino Forum

International => Español => Topic started by: Dukatus on Jul 20, 2011, 11:37 am

Title: Problema con definicion y creación de objeto con parametros (Solucionado)
Post by: Dukatus on Jul 20, 2011, 11:37 am
Hola a todos:

E creado una librería para manejar mi LCD serie, pero como la voy a usar con un Arduino Mega2560 quiero que funcione en los pin 18 y 19 por lo que utilizo la librería SoftwareSerial para ello ya que el Serial no permite definir los pin.
El problema es que la SoftwareSerial se le pasa como parámetros los pines al construirlo (declararlos) y después de probar muchas formas el ID solo me permite declararlo asín:

LCD128x64.h
Code: [Select]

class LCD128x64Class
{
    int vDelay;
  private:
    SoftwareSerial Pant( uint8_t receivePin, uint8_t transmitPin );     
  public:
    LCD128x64Class( uint8_t receivePin, uint8_t transmitPin );
    void SetDelay( int valor );
    void Cls();
    void Borrar(byte desde_x, byte desde_y, byte hasta_x, byte hasta_y);
    void Pixel(byte x, byte y, byte modo);
    void GotoXY(byte x, byte y);
    void Write(char* st);
    void WriteXY(char* st, byte x, byte y, byte modo);
    void Rectangulo(byte x1, byte y1, byte x2, byte y2, byte fill, byte modo);
    void Circulo(byte CentroX, byte CentroY, byte Radio, byte modo);
    void Linea(int x1, int y1, int x2, int y2, int z);
    void Brillo(byte luz);
};


LCD128x64.cpp
Code: [Select]

#include "SoftwareSerial.h"
#include "LCD128x64.h"

LCD128x64Class::LCD128x64Class( uint8_t receivePin, uint8_t transmitPin )
{
  vDelay = 0;
  SoftwareSerial Pant( receivePin, transmitPin );
  Pant.begin( 115200 ); //por defecto el LCD trabaja a estos bps
}

void LCD128x64Class::Cls()
{
  Pant.print(0x7C,BYTE);
  Pant.print(0x00,BYTE);
}


el problema es que de esta forma no me reconoce el objeto "Pant" en los metodos (por ejemplo "LCD128x64Class::Cls()").

Tiene alguien alguna idea de que va el tema.

Gracias y Saludos
Title: Re: Problema con definicion y creación de objeto con parametros
Post by: Dukatus on Jul 21, 2011, 07:36 pm
Bueno ya que no sale nadie, conocéis alguna librería que contenga el objeto de otra librería y se cree con parámetros.

Es para ver como se crea en el C de Arduino.

Por cierto, sabéis alguno en que C se programa en Arduino y si esta documentada sus limitaciones.

Gracias saludos
Title: Re: Problema con definicion y creación de objeto con parametros
Post by: ToloBCN on Jul 21, 2011, 11:17 pm
Me parece que de esta manera declaras dos veces.

Se me ocurre que declares un puntero al objecto y utilizes el puntero al objeto:

Code: [Select]
class xx
{
  private:
    SofwareSerial *pPant;
};

.....()
{
  SoftwareSerial Pant( receivePin, transmitPin );
  pPant = &Pant;
  ....
}

....()
{
  pPant->print(
  ....
}


No lo he provado ...
Title: Re: Problema con definicion y creación de objeto con parametros
Post by: chiva on Jul 21, 2011, 11:31 pm
Teniendo 4 puertos series, ¿por que no los usas?
Title: Re: Problema con definicion y creación de objeto con parametros
Post by: Dukatus on Jul 22, 2011, 02:16 am
Saludos:

ToloBCN:
    Lo e probado y no funciona, gracias de todas forma intentare algunas variantes de tu idea.

chiva:
   El problema es ese que quiero utilizar uno de los otros puertos y objeto Serie y no le e encontrado la forma de cambiar el puerto y al SoftwareSerial si lo trae.


Saludos y gracias.
Title: Re: Problema con definicion y creación de objeto con parametros
Post by: Dukatus on Jul 22, 2011, 10:42 am
SOLUCIONADO

La cosa no era definir el puerto que trabajar el Serial, pues ya existe un Serial1, Serial2 y Serial3 para los demás puertos.

Metedura de pata por mi parte.


Saludos y gracias.