Go Down

Topic: Definir el puerto serie a utilizar en un libreria (Read 755 times) previous topic - next topic

Dukatus

Hola a todos.

Tengo una librería echa por mi que utiliza el serie, la cual funciona bien, el problema es que si se utiliza un mega este tiene 4 puertos serie y para cambiar de puerto hay que editar la librería y modificar todas las llamadas al puerto serie.
Por mucho que miro no encuentro la forma de definir que quiero utilizar el Serial, Serial1, Serial2 o el Serial3.

La idea es que al iniciar la librería me pasen un parámetro para definí el numero del puerto que quieren utilizar y yo se lo asigne a un objeto que se convierta en el puerto Serial ......Serial3.

Alguien me puede orientar.

Gracias y saludos.

SrDonGato

#1
Mar 04, 2012, 02:09 am Last Edit: Mar 04, 2012, 09:11 pm by SrDonGato Reason: 1
usa directivas del precompilador

pasale el parametro como un numero por ejemplo y en la librería pones

si el parametro == 1
#define puerto Serial

si parametro == 2
#define puerto Serial1


luego en la programación de la librería en vez de serial pones

 puerto.begin(9600);


de esta manera donde pone "puerto" lo sustituye por el puerto serie que quieres utilizar según quieras

un saludo

Dukatus

La idea tiene buena pinta, tengo que probar como llevarla a cabo ya que el problema que tiene es que hay que declarar el puerto antes que la librería.

Gracias por el comentario

SrDonGato

si la funcion begin la haces en el setup dentro de la libreria pon solo las funciones que quieres hacer

puerto.begin(9600) lo he puesto de ejemplo, si lo tienes inicializado ya de antemano puede hacer  puerto.write(fulanitodecopas) por ejemplo
eso o haciendo varios IF

if puerto=1 entonces serial.write(fulanitodecopas)
if puerto=2 entonces serial1.write(fulanitodecopas)
if puerto=3 entonces serial2.write(fulanitodecopas)
if puerto=4 entonces serial3.write(fulanitodecopas)

hace el codigo algo mas largo pero igual de efectivo

Go Up