Loading...
Pages: [1]   Go Down
Author Topic: Definir el puerto serie a utilizar en un libreria  (Read 250 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 48
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: March 04, 2012, 03:11:31 pm by SrDonGato » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 48
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Print
 
Jump to: