Autor Tema: Propeller LED 16f877 Comunicacion PC-PIC  (Leído 7807 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Propeller LED 16f877 Comunicacion PC-PIC
« en: 16 de Mayo de 2010, 04:45:43 »
Hola a todos....

Antes que nada quisiera decirles que mis ultimas noches han estado dedicadas a leer temas en este foro acerca del propeller o giroplay, y tengo que decir que me siento sorprendido por la cantidad de genios que aportan sus conocimientos para llevar a cabo una idea...

Este tema y diversos ya han sido tomados en algunos apartados de este foro, pero lo que quiero en si es que me ayuden a sacar adelante este proyecto, ya que esta es mi primera experiencia con los PIC...

Estoy diseñando un propeller con 7 leds controlado por el PIC 16f877. He logrado que me muestre un mensaje mediante una tabla en la programacion... Lo que quiero inicialmente es que me ayuden a establecer una comunicacion (USB, RS232...) PC-PIC para que mediante una interfaz (software) en el computador se le ingrese un mensaje, y este sea visualizado en el propeller.

Cada letra se conforma de una matriz led de 7x5, el diseño del circuito aun es basico (tiene el 16f877 y los leds conectados directamente al puerto b)

El codigo esta en C y utilizo el compilador CCS:

Código: [Seleccionar]
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4M)

#byte portA=0x05
#byte portb=0x06
#byte trisA=0x85
#byte trisB=0x86


const unsigned char tabla[91][6] = {//TABLA DE CARACTERES

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 00   
                                    {0x00,0x00,0x00,0x00,0x00,0xff  },  // 01   
                                    {0x00,0x00,0x00,0x00,0x00,0xf0  },  // 02   
                                    {0x00,0x00,0x00,0x00,0x00,0x01  },  // 03   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 04
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 05
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 06
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 07
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 08
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 09

                                   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 10
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 11
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 12
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 13
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 14
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 15
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 16
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 17
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 18
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 19

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 20
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 21
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 22
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 23
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 24
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 25
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 26
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 27
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 28
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 29

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 30
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 31
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 32
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 33
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 34
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 35
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 36
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 37
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 38
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 39
                                   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 40
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 41
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 42
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 43
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 44
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 45
                                    {0x00,0x03,0x03,0x00,0x00,0x00  },  // 46 .
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 47
                                    {0x3E,0x45,0x49,0x51,0x3E,0x00  },  // 48 0
                                    {0x44,0x42,0x7F,0x40,0x40,0x00  },  // 49 1

                                    {0x42,0x61,0x51,0x49,0x46,0x00  },  // 50 2
                                    {0x22,0x41,0x49,0x49,0x36,0x00  },  // 51 3
                                    {0x38,0x24,0x22,0x7F,0x20,0x00  },  // 52 4
                                    {0x27,0x49,0x49,0x49,0x31,0x00  },  // 53 5
                                    {0x3E,0x49,0x49,0x49,0x32,0x00  },  // 54 6
                                    {0x01,0x01,0x71,0x09,0x07,0x00  },  // 55 7
                                    {0x36,0x49,0x49,0x49,0x36,0x00  },  // 56 8
                                    {0x26,0x49,0x49,0x49,0x36,0x00  },  // 57 9
                                    {0x00,0x36,0x36,0x00,0x00,0x00  },  // 58 :
                                    {0x00,0x36,0x36,0x00,0x00,0x00  },   // 59

                                    {0x38,0x38,0xfe,0x7b,0x38,0x10  },  // 60   flecha
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 61
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 62
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 63
                                    {0x32,0x49,0x79,0x41,0x3e,0x00  },  // 64 @
                                    {0x7e,0x11,0x11,0x11,0x7e,0x00  },  // 65 A
                                    {0x7f,0x49,0x49,0x49,0x36,0x00  },   // 66 B
                                    {0x3e,0x41,0x41,0x41,0x22,0x00  },   // 67 C
                                    {0x7f,0x41,0x41,0x22,0x1c,0x00  },   // 68 D
                                    {0x7f,0x49,0x49,0x49,0x41,0x00  },   // 69 E
                                   
                                    {0x7f,0x09,0x09,0x09,0x01,0x00  },   // 70 F
                                    {0x3e,0x41,0x49,0x49,0x7a,0x00  },   // 71 G
                                    {0x7f,0x08,0x08,0x08,0x7f,0x00  },   // 72 H
                                    {0x00,0x41,0x7f,0x41,0x00,0x00  },   // 73 I
                                    {0x20,0x40,0x41,0x3f,0x01,0x00  },   // 74 J
                                    {0x7f,0x08,0x14,0x22,0x41,0x00  },   // 75 K
                                    {0x7f,0x40,0x40,0x40,0x40,0x00  },   // 76 L
                                    {0x7f,0x02,0x0c,0x02,0x7f,0x00  },   // 77 M
                                    {0x7f,0x04,0x08,0x10,0x7f,0x00  },   // 78 N
                                    {0x3e,0x41,0x41,0x41,0x3e,0x00  },   // 79 O

                                    {0x7f,0x09,0x09,0x09,0x06,0x00  },   // 80 P
                                    {0x3e,0x41,0x51,0x21,0x5e,0x00  },   // 81 Q
                                    {0x7f,0x09,0x19,0x29,0x46,0x00  },   // 82 R
                                    {0x46,0x49,0x49,0x49,0x31,0x00  },   // 83 S
                                    {0x01,0x01,0x7f,0x01,0x01,0x00  },   // 84 T
                                    {0x3f,0x40,0x40,0x40,0x3f,0x00  },   // 85 U
                                    {0x1f,0x20,0x40,0x20,0x1f,0x00  },   // 86 V
                                    {0x3f,0x40,0x38,0x40,0x3f,0x00  },   // 87 W
                                    {0x63,0x14,0x08,0x14,0x63,0x00  },   // 88 X
                                    {0x07,0x08,0x70,0x08,0x07,0x00  },   // 89 Y
                                   
                                    {0x61,0x51,0x49,0x45,0x43,0x00  },   // 90 Z
                                    };
unsigned long u,q;
char str[];


void print(char chr1) {
for (q=0;q<6;q++) {
   portb=tabla[chr1][q];
   delay_ms(5000);
}
}

void MENSAJE(char dato[15]){
for(q=0;q<12;q++)
   str[q]=dato[q];
for(u=0;u<12;u++)
   print(str[u]);
}

void main(){
trisA = 0;
portA = 0;
trisB=0x00;
portB=0x00;
do{
   char mns[15]="HOLA";
   MENSAJE(mns);
}while(1);
}

Antes de que me digan que los retardos estan muy altos (5sg), lo he implementado asi para corroborar que se estaban encendiendo los leds correspontientes

GRACIAS de antemano y espero la ayuda de todas las mentes brillantes que conforman este foro... :-/
« Última modificación: 16 de Mayo de 2010, 04:50:57 por Fapes »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #1 en: 16 de Mayo de 2010, 05:29:16 »
¿Cómo implementarás físicamente la conexión?, ¿cómo pasarán las señales desde el cable del PC al pic que gira?

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #2 en: 16 de Mayo de 2010, 10:34:59 »
Nocturno... Por ahora voy a utilizar baterias, ya que encuentro eso como el principal obstaculo mecanico, y como puedes ver, la parte mecanica la he dejado a un lado, para implementar primero el codigo y el circuito... Obviamente no quiere decir que no lo he pensado, y creo que la forma mas facil seria con escobillas, porque aun no logro entender como alimentan la parte movil desde el motor sin que los cables obstruyan...

Ahora te pregunto... Que forma de comunicacion PC-PIC podria implementar ?... Me gustaria inalambrica, para no tener que detener el giro para cambiar el mensaje, pero para iniciar y no complicarnos tanto (por implementar una version demo), la comunicacion puede ser de cualquier forma, lo importante es lograrla, y lograr el soft para el PC, donde se introduciran los mensajes...

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #3 en: 16 de Mayo de 2010, 12:17:19 »
Hola.

Pues usando ese micro, te toca por RS232.

Saludos
El papel lo aguanta todo

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #4 en: 16 de Mayo de 2010, 12:40:32 »
Hola.

Pues usando ese micro, te toca por RS232.

Saludos

Podria implementar el RS232, pero si alguien lo sabe hacer por usb, simplemente cambiaria el PIC por el 18f4550... En estos momentos estoy leyendo algo sobre eso en http://picmania.garcia-cuervo.net/usb_2_hidtransfers.php...

Si sabes como implementar la comunicacion por rs232 recibo tu aporte... La idea principal es escribir una palabra o frase en el SOFTWARE creado para el PC y que me cambie la variable del progrma, algo asi:

void main(){
.
.
do{
   char mns[15]=frase_del_PC;
   MENSAJE(mns);
}while(1);
}
.
.

Saludos...

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #5 en: 16 de Mayo de 2010, 12:53:37 »
lo que podrias ocupar es tambien usar es una pequeña idea que hice en Optoelectronica, haciendo girar con un foto transistor justo al momento en que que llegaba al angulo cero, mediante el emisor le mandaba los datos, podrias ver si te ayuda eso

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #6 en: 16 de Mayo de 2010, 13:04:32 »
lo que podrias ocupar es tambien usar es una pequeña idea que hice en Optoelectronica, haciendo girar con un foto transistor justo al momento en que que llegaba al angulo cero, mediante el emisor le mandaba los datos, podrias ver si te ayuda eso

No te entiendo muy bien... tratas de decirme que use el foto transitor para detectar el anugulo 0, asi enviar una señal al PIC y empezar a dibujar el mensaje desde ese punto para evitar corrimientos del texto ??... Creo que esa parte es interesante en el caso en que no se mantengan las RPM estables... y la verdad no se aun como implementar eso... me ayudaria mucho tu aporte...

En cuanto al envio de datos... Por ahora busco comunicacion PC-PIC... mas adelante podria implementar PIC-PC para sensar temperatura, RPM ... por ahora lo importante es lograr el envio de palabras desde el PC al PIC y visualizarlas en los leds...

Saludos

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #7 en: 16 de Mayo de 2010, 13:41:58 »
La forma mas simple seria comunicarlos por infrarrojo. Pones un fototransistor relativamente cerca del centro de rotacion del aparato (para que no se mueva mucho), y lo iluminas con un led infrarrojo desde afuera.
Supongo que la comunicacion va a ser unidireccional, por lo tanto solo vas a necesitar la patita RX del pic. Si no tendrias q aplicar dos barreras.
Saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #8 en: 16 de Mayo de 2010, 13:44:21 »
Gera... tendrias algun ejemplo de la comunicacion por infrarojo?...

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #9 en: 16 de Mayo de 2010, 17:29:21 »
Gera... tendrias algun ejemplo de la comunicacion por infrarojo?...

es el ejemplo que te comentaba.

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #10 en: 16 de Mayo de 2010, 17:30:55 »
Gera... tendrias algun ejemplo de la comunicacion por infrarojo?...

es el ejemplo que te comentaba.

Podrias compartirlo?...

Desconectado Fapes

  • PIC10
  • *
  • Mensajes: 10
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #11 en: 17 de Mayo de 2010, 13:34:35 »
Bn he logrado enviarle un mensaje mediante el puerto RS232 uzando el virtual terminal del Proteus.... este es el codigo:

Código: [Seleccionar]
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=10000000)
#use RS232(BAUD=9600, BITS=8, PARITY=N, XMIT=PIN_C6, RCV=PIN_C7)

#byte porta=0x05
#byte portb=0x06
#byte portd=0x08
#byte trisa=0x85
#byte trisb=0x86
#byte trisd=0x88


const unsigned char tabla[91][6] = {

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 00   
                                    {0x00,0x00,0x00,0x00,0x00,0xff  },  // 01   
                                    {0x00,0x00,0x00,0x00,0x00,0xf0  },  // 02   
                                    {0x00,0x00,0x00,0x00,0x00,0x01  },  // 03   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 04
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 05
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 06
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 07
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 08
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 09

                                   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 10
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 11
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 12
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 13
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 14
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 15
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 16
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 17
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 18
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 19

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 20
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 21
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 22
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 23
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 24
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 25
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 26
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 27
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 28
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 29

                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 30
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 31
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 32
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 33
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 34
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 35
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 36
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 37
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 38
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 39
                                   
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 40
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 41
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 42
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 43
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 44
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 45
                                    {0x00,0x03,0x03,0x00,0x00,0x00  },  // 46 .
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 47
                                    {0x3E,0x45,0x49,0x51,0x3E,0x00  },  // 48 0
                                    {0x44,0x42,0x7F,0x40,0x40,0x00  },  // 49 1

                                    {0x42,0x61,0x51,0x49,0x46,0x00  },  // 50 2
                                    {0x22,0x41,0x49,0x49,0x36,0x00  },  // 51 3
                                    {0x38,0x24,0x22,0x7F,0x20,0x00  },  // 52 4
                                    {0x27,0x49,0x49,0x49,0x31,0x00  },  // 53 5
                                    {0x3E,0x49,0x49,0x49,0x32,0x00  },  // 54 6
                                    {0x01,0x01,0x71,0x09,0x07,0x00  },  // 55 7
                                    {0x36,0x49,0x49,0x49,0x36,0x00  },  // 56 8
                                    {0x26,0x49,0x49,0x49,0x36,0x00  },  // 57 9
                                    {0x00,0x36,0x36,0x00,0x00,0x00  },  // 58 :
                                    {0x00,0x36,0x36,0x00,0x00,0x00  },   // 59

                                    {0x38,0x38,0xfe,0x7b,0x38,0x10  },  // 60   flecha
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 61
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 62
                                    {0x00,0x00,0x00,0x00,0x00,0x00  },  // 63
                                    {0x32,0x49,0x79,0x41,0x3e,0x00  },  // 64 @
                                    {0x7e,0x11,0x11,0x11,0x7e,0x00  },  // 65 A
                                    {0x7f,0x49,0x49,0x49,0x36,0x00  },   // 66 B
                                    {0x3e,0x41,0x41,0x41,0x22,0x00  },   // 67 C
                                    {0x7f,0x41,0x41,0x22,0x1c,0x00  },   // 68 D
                                    {0x7f,0x49,0x49,0x49,0x41,0x00  },   // 69 E
                                   
                                    {0x7f,0x09,0x09,0x09,0x01,0x00  },   // 70 F
                                    {0x3e,0x41,0x49,0x49,0x7a,0x00  },   // 71 G
                                    {0x7f,0x08,0x08,0x08,0x7f,0x00  },   // 72 H
                                    {0x00,0x41,0x7f,0x41,0x00,0x00  },   // 73 I
                                    {0x20,0x40,0x41,0x3f,0x01,0x00  },   // 74 J
                                    {0x7f,0x08,0x14,0x22,0x41,0x00  },   // 75 K
                                    {0x7f,0x40,0x40,0x40,0x40,0x00  },   // 76 L
                                    {0x7f,0x02,0x0c,0x02,0x7f,0x00  },   // 77 M
                                    {0x7f,0x04,0x08,0x10,0x7f,0x00  },   // 78 N
                                    {0x3e,0x41,0x41,0x41,0x3e,0x00  },   // 79 O

                                    {0x7f,0x09,0x09,0x09,0x06,0x00  },   // 80 P
                                    {0x3e,0x41,0x51,0x21,0x5e,0x00  },   // 81 Q
                                    {0x7f,0x09,0x19,0x29,0x46,0x00  },   // 82 R
                                    {0x46,0x49,0x49,0x49,0x31,0x00  },   // 83 S
                                    {0x01,0x01,0x7f,0x01,0x01,0x00  },   // 84 T
                                    {0x3f,0x40,0x40,0x40,0x3f,0x00  },   // 85 U
                                    {0x1f,0x20,0x40,0x20,0x1f,0x00  },   // 86 V
                                    {0x3f,0x40,0x38,0x40,0x3f,0x00  },   // 87 W
                                    {0x63,0x14,0x08,0x14,0x63,0x00  },   // 88 X
                                    {0x07,0x08,0x70,0x08,0x07,0x00  },   // 89 Y
                                   
                                    {0x61,0x51,0x49,0x45,0x43,0x00  },   // 90 Z
                                    };
unsigned long u,q;
char str[];
char mns[15];


void print(char chr1) {
for (q=0;q<6;q++) {
   portb=tabla[chr1][q];
   portd=tabla[chr1][q];//lo mismo con las unidades
   delay_ms(1000); // 640us
}
}

void MENSAJE(char dato[15]){
for(q=0;q<12;q++)
   str[q]=dato[q];
for(u=0;u<12;u++)
   print(str[u]);
}

void main(){

trisa = 0x00;
porta = 0x00;
trisb = 0x00;
portb = 0x00;
trisd = 0x00;
portd = 0x00;


   gets(mns);
   printf("Mostrar: %s\r",mns);
   
   while(1)//Este es el bucle que necesito sea infinito
   MENSAJE(mns);
   

}

   while(1)//Este es el bucle que necesito sea infinito
   MENSAJE(mns);

Creo que este ciclo deberia repetirse indefinidamente, pero no lo hace... Que estare haciendo mal? Ayudenmen porfavor...

Desconectado Iss77

  • PIC10
  • *
  • Mensajes: 1
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #12 en: 04 de Mayo de 2011, 05:55:24 »
Saludos!!

ya probaste en la linea con while(true), tal vez ahi sea el detalle

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Propeller LED 16f877 Comunicacion PC-PIC
« Respuesta #13 en: 04 de Mayo de 2011, 09:54:39 »
El while esta bien. Para mi el problema esta en como manejas el string con el mensaje. Para empezar un gets() se puede "colgar" si no le mandas un caracter de fin de cadena (el caracter nulo '\0').
No entiendo por q haces una copia del string "mns" (q por cieto la copias en "str" que no tiene memoria reservada). Podrias trabajar directamente sobre mns por medio de un puntero:

Código: [Seleccionar]
void MENSAJE(char *dato){
for(u=0;u<12;u++)
   print(dato+u);
}

saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein