Autor Tema: trabajar números y comunicación serie  (Leído 1668 veces)

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

Desconectado iru202

  • PIC10
  • *
  • Mensajes: 5
trabajar números y comunicación serie
« en: 13 de Agosto de 2013, 04:13:45 »
Hola a todos!!

A ver como os cuento lo que estoy intentando hacer y si me podéis ayudar, por cierto, estoy usando picbasic ;)

Al pic le llega por el puerto serie el número 230, pero al ser comunicación serie, lo que en realidad llega es "2","3","0", que si no me equivoco son el valor ASCII para el 2,3 y el 0, pues bien, lo que yo necesito son dos cosas,
1) guardar 230 en una variable tipo byte puesto que entra
2) hacer una simple suma del estilo 230+10 = 240

¿Como puedo hacerlo?

Os hago un programita de ejemplo para dejarlo algo más claro

'recibo "2","3" y "0" por puerto serie
HSerIn 5000, label, [Wait(","),B0,B1,B2]
IF (B0 <= 2) AND (B1<=5) AND (B2<=5) THEN 'para asegurar que entra en una variable tipo byte
B3 = (B0 * 100) + (B1*10) + B2
B4 = B3 + 10
ENDIF

No se si me he explicado bien, a ver si me podéis echar una mano.

Muchas gracias por todo!!

Desconectado BBMNet

  • PIC12
  • **
  • Mensajes: 91
Re: trabajar números y comunicación serie
« Respuesta #1 en: 13 de Agosto de 2013, 11:55:09 »
Una idea que difiere un poco de lo que quieres pero que me funciona es crear dos bloques de memoria.

El primer bloque contendría un número (llamémoslo acumulador) y está formado por un número de bytes correspondientes al número de dígitos que quieras utilizar. En mi caso es la información que envío a un display.

El segundo bloque organizado igual que el primero recibiría la información serial "acomodando" los dígitos. En este punto recuerda restar 48 a cada byte recibido para obtener el valor real (por lo que entiendo recibes los números como código ASCII).

Después de haber recibido a totalidad el número del segundo bloque ya puedes hacer lo que quieras con ellos. En mi caso los sumo o resto según el estado de una señal.

Si eventualmente requieres el valor hexadecimal es relativamente fácil de obtenerlo a partir del valor equivalente de cada década del "contador". En cualquier caso se me hace más fácil obtenerlo así que partir de números hex para obtener el decimal (decimal a hex son sumas mientras que de hex a decimal son divisiones y restas).

Espero que esta idea te ayude.

Saludos.

Desconectado iru202

  • PIC10
  • *
  • Mensajes: 5
Re: trabajar números y comunicación serie
« Respuesta #2 en: 14 de Agosto de 2013, 15:29:56 »
Hola, muchas gracias por la idea, como estrategia puede servir, voy a probarlo a ver que tal me sale.


 

anything