Autor Tema: Problemas con la comunicacion  (Leído 2646 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado becadeitor

  • PIC10
  • *
  • Mensajes: 8
Problemas con la comunicacion
« en: 18 de Junio de 2007, 07:47:26 »
Hola a todos:

Despues de romperme una vez y otra la cabeza, con el entrenador easyPic (quien no lo tenga se lo aconsejo por relacion calidad/precio), y despues de consultar el foro por si hubiese temas relacionados, paso a haceros la siguiente consulta.

Estoy diseñando un sistema de automatización, que consta de 1 pic , junto a una serie de perifericos para activación de electrovalvulas, y acondicionarores de señal, asi como su respectivo max232 para comunicarse con el ordenador.

A la hora de la programacion, me he encontrado con un problema que no lo encuentro solucion.

El objetivo es que el ordenador mande un comando a la placa del pic, y esta placa actue segun el comando que reciba.
Realice; un programa prototipo  para intentar probar esta parte, y lo probe en la placa easypic  pero el resultado siempre es erroneo.

el programa (muy esquematizado)


program comandos
' declaracion de variables.

dim Recibido as string[7]

main:
  Usart_Init(9600)                 ' Inicializamos Usar
  TRISA = 0
  PORTA = 0
recibido = ""

  while true
    if Usart_Data_Ready() = 1 then   
    ' Lectura del puerto
    Usart_Read_Text(Recibido,"$")         'Detecta el final del comando mediante el caracter $
   

    select case Recibido                         'Si el comando es v ......
    case Recibido = "va"
    Usart_Write_Text("vacio")
    case Recibido = "do"                          'Si el comando es do
    Usart_Write_Text("dosis")
    case else
    Usart_Write_Text(Recibido)               ' En caso contrario reenvia el dato recibido
    end select
    Recibido = ""

  end if


Bueno el programa que veis es uno que hice para testear este apartado, utilizo el mikrobasic 5.0
cuando ejecuto sobre un Pic este programa, SI que exite una comunicacion.. pero envé el comando que envíe.. siempre recibo el texto "vacio"
 Si a alguien se le ocurre una solucion, porfavor indicarmela!!!  :shock:
Gracias a todos

Desconectado becadeitor

  • PIC10
  • *
  • Mensajes: 8
Re: Problemas con la comunicacion
« Respuesta #1 en: 18 de Junio de 2007, 08:01:17 »
Una rectificacion sobre el programa...

program comandos
' declaracion de variables.

dim Recibido as string[7]

main:
  Usart_Init(9600)                 ' Inicializamos Usar
  TRISA = 0
  PORTA = 0
recibido = ""

  while true
    if Usart_Data_Ready() = 1 then   
    ' Lectura del puerto
    Usart_Read_Text(Recibido,"$")         'Detecta el final del comando mediante el caracter $
   

    select case Recibido                         'Si el comando es va ......
    case "va"
    Usart_Write_Text("vacio")
    case "do"                          'Si el comando es do
    Usart_Write_Text("dosis")
    case else
    Usart_Write_Text(Recibido)               ' En caso contrario reenvia el dato recibido
    end select
    Recibido = ""

  end if

 la estriuctura selec , case es case "va" o case "do" en vez de Recibido = ..., si compilais el primer programa os daria error
 8)

Desconectado becadeitor

  • PIC10
  • *
  • Mensajes: 8
Re: Problemas con la comunicacion
« Respuesta #2 en: 19 de Junio de 2007, 07:54:05 »
Finalmente halle la solución!!!!!!


rogram rs232_com_test

' declaracion de variables.
  dim dato as char
  dim Recibido as string[7]
  dim x as byte
  dim cmp as byte

main:
  Usart_Init(9600) ' Initialize USART module
  TRISA = 0
  PORTA = 0

  while true
    if Usart_Data_Ready() = 1 then ' If data is received
      ' Lectura del puerto
      Usart_Read_Text(Recibido,"$")
      cmp = strcmp(Recibido, "va")
      if cmp = 0 then
        Usart_Write_Text("vacum")
      else
        cmp = strcmp(Recibido, "do")
        if cmp = 0 then
          Usart_Write_Text("dosing")
        end if
      end if
      Usart_Write_Text(Recibido)
    end if
  wend
end.

si os dais cuenta he eliminado la sentencia case,.. es debido a que el mikrobasic, no utiliza los string.
Dar las gracias al equipo de soporte de mikrobasic!!!, (pero haber si hay suerte y en las próximas renovaciones implementan esta caraceristica.....)
 :-/ :-/ :-/ :mrgreen: :mrgreen: :mrgreen: 8)

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Problemas con la comunicacion
« Respuesta #3 en: 19 de Junio de 2007, 10:29:46 »
Felicidades, de esta forma doble satisfaccion...  :D
Saludos desde Granada, España.


 

anything