Autor Tema: Como leer los bytes de un array con Pic Simulator  (Leído 1976 veces)

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

Desconectado EA7LN

  • PIC10
  • *
  • Mensajes: 36
Como leer los bytes de un array con Pic Simulator
« en: 24 de Agosto de 2009, 18:15:33 »
Hola a todos, llevo tiempo con un proyecto para controlar un rotor de antena con un 16F876,
La primera fase ha sido trabajar de forma autonoma mediante pulsadores y poder memorizar distintas orientaciones a la vez que visualizo en el display los datos de horientacion y elevacion de las antenas.
Ahora quiero poder controlarlo desde el propio PC mediante un soft que calcula la trayectoria de satelites y tengo dudas.
mi problema es que no tengo bastantes conocimientos para leer correctamente el array de datos que capturo por el puerto serie.
Para practicar, he probado enviando desde el hyperterminal un strim de 3 bytes y leerlos en el display.
os dejo el programa porque seguro que algo estoy haciendo mal.
Me podeis ayudar o poner un ejemplo?? He buscado en el hilo de Pic Simulator pero los programas que veo son complicados para mis conocimientos.
Gracias


loop:
Hseropen 19200
Hserget indata(contador)
Lcdcmdout LcdClear
Lcdcmdout LcdHome
Lcdout #indata(0)
If indata(0) = 97 Then
Lcdcmdout LcdHome
contador = contador + 1
Hserget indata(contador)
contador = contador + 1
Hserget indata(contador)
If contador > 2 Then contador = 0
Lcdcmdout LcdHome
Lcdout "indata:" #indata(1), " ", #indata(2)
WaitMs 50
buffer(1) = indata(1)
buffer(2) = indata(2)
Lcdcmdout LcdClear
Lcdcmdout LcdLine2Home
Lcdout "buffer:" #buffer(1), " ", #buffer(2)
WaitMs 50
Endif
Goto loop
Cada dia aprendo algo nuevo. ¡Cuanto me queda por aprender!

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Como leer los bytes de un array con Pic Simulator
« Respuesta #1 en: 30 de Agosto de 2009, 09:43:55 »
Cambia los Hserget por Hserin a ver si te va mejor.

Código: vb.net
  1. '****** PIC16F876, SOLO SIMULACION ********************************
  2. Define LCD_BITS = 4  'indicamos que el bus de datos del lcd sera de 4bit
  3. Define LCD_DREG = PORTA  'el bus de datos sera el puerto A
  4. Define LCD_DBIT = 0  'el bus de datos seran los 4 bit menos significativos del puerto A
  5. Define LCD_RSREG = PORTB  'el bit de control RS sera del puerto B
  6. Define LCD_RSBIT = 7  'se usara el RB7 como RS
  7. Define LCD_EREG = PORTB  'el bit de control E sera del puerto B
  8. Define LCD_EBIT = 6  'se usara el RB6 como E
  9. Define LCD_COMMANDUS = 2000  'Tiempo de espera despues de ejecutar un comand del lcd en uSeg.
  10. Define LCD_DATAUS = 50  'Tiempo de espera despues de enviar un dato al LCD en uSeg.
  11. Define LCD_INITMS = 50  '5  '(50)  'Tiempo de espera despues de inicializar el Display, solo se ejecuta una vez en mSeg.
  12. '---------------------------
  13.  
  14. Dim indata(10) As Byte
  15. Dim contador As Byte
  16. Dim buffer(10) As Byte
  17.  
  18. contador = 0
  19.  
  20. AllDigital
  21. TRISC.6 = 0  'Tx, pin fisico de la uar como salida.
  22.  
  23. Lcdinit
  24. Hseropen 19200
  25.  
  26. loop:
  27.         Hserin indata(contador)
  28.         Lcdcmdout LcdClear
  29.         Lcdcmdout LcdHome
  30.         Lcdout #indata(0)
  31.         If indata(0) = 97 Then
  32.                 Lcdcmdout LcdHome
  33.                 contador = contador + 1
  34.                 Hserin indata(contador)
  35.                 contador = contador + 1
  36.                 Hserin indata(contador)
  37.                 If contador > 2 Then contador = 0
  38.                 Lcdcmdout LcdHome
  39.                 Lcdout "indata:" #indata(1), " ", #indata(2)
  40.                 WaitMs 50
  41.                 buffer(1) = indata(1)
  42.                 buffer(2) = indata(2)
  43.                 Lcdcmdout LcdClear
  44.                 Lcdcmdout LcdLine2Home
  45.                 Lcdout "buffer:" #buffer(1), " ", #buffer(2)
  46.                 WaitMs 50
  47.         Endif
  48. Goto loop
« Última modificación: 30 de Agosto de 2009, 12:16:06 por dogflu66 »
Saludos desde Granada, España.