Autor Tema: Hola, me podrian ayudar con el puerto E? por favor...  (Leído 1608 veces)

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

Desconectado Paco0812

  • PIC10
  • *
  • Mensajes: 2
Hola, me podrian ayudar con el puerto E? por favor...
« en: 14 de Agosto de 2013, 19:30:59 »
Antes que nada un saludo a todos los usuarios de este foro, soy un programador amateur de PICs y en este tema me he topado con una pequeña "curiosidad" que me gustaria me ayudaran a despejar ya que por lo que veo hay mucha gente experta en este foro,uso el pic c compiler para programar mis pics y el proteus para simular la secuencia programada en los pics, la cuestion es la siguiente:

Tengo la necesidad de usar el puerto E de un PIC16F877A, al escribir la programacion y usar por separado cada una de los 3 pines de este puerto...el pic c compiler no me marca ningun error, y al grabarselo al pic este lo ejecuta tal y como debe ser, pero al momento de simular en proteus me marca un error "Internal Exception: access violation in module PIC16.DLL" y este error deja de aparecer cuando modifico el programa y en lugar de manejar por separado los pines del puerto E los manejo todos juntos, de esta manera:

 output_e(0xFF);
 delay_ms(500);
 output_e(0x00);

Y de esta manera es cuando curiosamente y solo el proteus me marca el error ya mencionado:

output_high(pin_e0);
delay_ms(1000);
output_low(pin_e0);
output_high(pin_e1);
output_high(pin_e2);
delay_ms(2000);
output_low(pin_e1);
output_low(pin_e2);

Es para mi muy importante saber el porque de este caso y saber si se trata de una mal tecnica de programacion, ya que este pic es para controlar un proceso dentro de un vehiculo y se utilizara como proyecto final de la escuela y obviamente no quiero causarle daños al vehiculo.

Les agradesco el tiempo que se toman para leer este mensaje y espero me puedan ayudar, gracias!!

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Hola, me podrian ayudar con el puerto E? por favor...
« Respuesta #1 en: 14 de Agosto de 2013, 20:13:18 »
Quizas tengas una version antigua del proteus o bien no lo tengas actualizado, por lo demas ese error no te lo daria en la realidad.

Desconectado Paco0812

  • PIC10
  • *
  • Mensajes: 2
Re: Hola, me podrian ayudar con el puerto E? por favor...
« Respuesta #2 en: 14 de Agosto de 2013, 20:56:13 »
Ohh! lo que pasa que proteus es el unico sofware que he usado para simular pics porque me han dicho que es muy realista en cuestiones de fallas, conexiones, etc, pense que si me aparecia ese error era porque ese puerto se manejaba diferente a los otros puertos en cuestion de entradas/salidas digitales, entonces tecnicamente el puerto E se puede usar pin por pin como cualquier otro puerto y si aparece ese error en proteus ya es cuestion de la version o el software?

Cual es la version mas nueva de proteus?

Gracias!

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Hola, me podrian ayudar con el puerto E? por favor...
« Respuesta #3 en: 15 de Agosto de 2013, 10:51:24 »
creo que la version 10

Si es realista hasta cierto punto, pero cuando te da un error de software como ese es claramente problema del programa

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Hola, me podrian ayudar con el puerto E? por favor...
« Respuesta #4 en: 15 de Agosto de 2013, 12:38:19 »
ahora que, esa no es la unica forma de manejar pin por pin algun puerto, podrias hacerlo asi tambien:

Código: [Seleccionar]
#BYTE PORTE=0x009  //Esta declaracion va por fuera del main() como global

bit_set(PORTE,0); //enciende el bit 0 del puerto E
bit_clear(PORTE,0); //apaga el bit 0 del puerto E

Esto es solo otra forma de hacer lo que quieres, la ayuda de CCS esta muy bien documentada en muchas cosas y con muchos ejemplos.

Saludos.
Nunca se deja de aprender