Home
  Academia
    Sist.Tiempo Real
      Modulo

  Introducción
  Protocolo
    Escape
    Flujo
  Uso
  16550
  Indicaciones

Resultados
  Mód. óptico
  Mód. térmico
  Mód. motor

Watermark

Módulos didácticos - Como mejor implementar el programa

La implementación de la parte de comunicaciones se implementa lo mas 'elegantemente', en rutinas especializadas para cada tarea - una regla general para todo tipo de programación estructurada.

Las tareas a distinguir son:

Inicialización de la interfase
La inicialización del puerto serial es una tarea especializada que no se reutilizará después, pero es lógico mantenerla separada del programa principal.

Envio de un byte por la línea serial
El detalle del manejo de los registros de control de la interfase serial se debe separar de los detalles de la implementación del protocolo de comunicación - entonces lo mejor es de hacer una rutina que recibe un 'byte a enviar' y se encarga de controlar el estado de la interfase como especificado en la descripción del integrado.

Recepción de un byte de la línea
Por los mismos motivos, los detalles de la implementación de la recepción deben estar 'encapsulados' en una función que devolverá el proximo byte - cuando haya llegado.

Envio de un paquete del protocolo
La preparación de un paquete de transmisión no es la tarea de un programa principal. El programa principal dirá unicamente 'enviame este byte de comando y/o datos'. Los detalles del protocolo (el 0xC0 inicial y final, la suma de control, etc) deben estar concentrados en una rutina de 'envio de paquete'. Es esta rutina que debe llamar a la rutina (arriba) de envio de bytes tantas veces que sea necesario para enviar el paquete completo.

Recepción de un paquete de protocolo
De la misma forma, no es tarea del programa principal de recibir un paquete de respuesta del módulo: Los detalles de la detección del inicio de paquete (0xC0), los datos, suma de control etc, deben estar escondidos en una función cuya función es 'recibíme el próximo paquete válido, y deme únicamente lo que me interesa, probablemente la medición, en nuestro caso.

Una vez implementadas estas cinco funciones, es facil de hacer las tareas reales de comandar el módulo para las tareas por hacer.
(c) John Coppens ON6JC/LW3HAZ correo