TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: jopes en 04 de Marzo de 2009, 10:55:52

Título: Error 7: Sin memoria (y se cierra el programa)
Publicado por: jopes en 04 de Marzo de 2009, 10:55:52
Hola, saludos a todos los que participais en el foro.
Estoy haciendo una aplicación con Visual Basic. Tengo una función que recibe datos del microcontrolador PIC16F876A, pero me da error 7: sin memoria, cuando recibo más de un dato. He leido la ayuda del programa y he intentado hacer lo que ponía como sugerencia para solucionarlo pero sigo igual.
¿Alguien puede ayudarme o sabe como podría recibir datos del pic sin que me de este error?
Muchas gracias.
Título: Re: Error 7: Sin memoria (y se cierra el programa)
Publicado por: pibe en 04 de Marzo de 2009, 11:06:04
Pero por donde los recibe? por uart?
Si es asi ya sabes que debes leer el dato porque la uart tiene un buffer interno de 3 bytes. Recibe el primero, recibe el segundo, y si al recibir el tercero aún no has leído esos datos entonces se produce un overflow de la uart.
Por eso, dato que recibas, dato que DEBES leer , aunque sea para tirarlo a la basura. Pero debes leerlo.
Título: Re: Error 7: Sin memoria (y se cierra el programa)
Publicado por: jopes en 04 de Marzo de 2009, 17:18:54
Si, los recibo por el puerto serie. Utilizo la interrupcion de recepcion, así, en cuanto me llegue un solo dato, leo el buffer entero. Este error no me daba en un principio, pero de repente, un dia me salió, y desde entonces no lo he podido solucionar. Leí que podía ser debido a un bucle infinito, pero eso está descartado porque lo he revisado concienzudamente.
Muchas gracias
Título: Re: Error 7: Sin memoria (y se cierra el programa)
Publicado por: pibe en 04 de Marzo de 2009, 17:50:13
Deberías subir tu codigo para poder analizarlo. No seré yo el que lo haga porque solo programo en asm.
Título: Re: Error 7: Sin memoria (y se cierra el programa)
Publicado por: jopes en 10 de Marzo de 2009, 08:01:48
Mas o menos ya está solucionado. A la hora de recibir los datos vía serie Rs232 del pic, utilizaba una instrucción for, la he quitado y uso varias sentencias if y ya no me da ese error.
Es una chapuzilla pero al menos puedo continuar con el proyecto, más adelante intentaré optimizar el código.  :shock:
El bucle for lo revisé mil veces por si acaso el error era debido a que era un bucle infinito, pero el for estaba correctamente escrito. La verdad es que no tengo ni idea de por qué me daba ese error.
Saludos!!!