Autor Tema: En la simulacion funciona, en la realidad no  (Leído 2262 veces)

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

Desconectado marcelo2112

  • PIC12
  • **
  • Mensajes: 64
En la simulacion funciona, en la realidad no
« en: 30 de Agosto de 2010, 09:02:44 »
Hola, soy muy nuevo en esto de programacion.
Estoy usando el pic 16f628a y microcode studio para hacer el programa, el cual en proteus me funciona pero programe el pic y en la placa no lo hace bien. A ver que estoy haciendo mal:


AllDigital
TRISA = %11111111  'todos los pines como entradas
TRISB = %00000000  'todos los pines como salidas

inicio:


IF porta.6 = 0 THEN GOTO parar
IF porta.6 = 1 THEN GOTO sistema


sistema:

IF PORTA.7 = 1 THEN  GOTO swicheo
IF PORTA.7 = 0 THEN  GOTO swicheo2

swicheo

If PORTA.0 = 1 Then Goto forma1
If PORTA.1 = 1 Then Goto forma2
If PORTA.2 = 1 Then Goto forma3
If PORTA.3 = 1 Then Goto forma4
IF PORTA.4 = 1 THEN GOTO forma5

swicheo2

If PORTa.0 = 1 Then Goto forma6
If PORTa.1 = 1 Then Goto forma7
If PORTa.2 = 1 Then Goto forma8
If PORTa.3 = 1 Then Goto forma9
IF porta.4 = 1 THEN GOTO forma10

Mediante una llave selectora rotativa tengo que seleccionar la forma de encender y apagar las salidas, pero por alguna razon la unica que me funciona es la ultima de swicheo, forma5 o forma10 segun esten el pulsador de porta7.
Espero lo podamos solucionar. Saludos y gracias.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: En la simulacion funciona, en la realidad no
« Respuesta #1 en: 30 de Agosto de 2010, 10:27:40 »
Para poder disponer de los pines 6y7 del puerto A me imagino que habras configurado el oscilador en modo interno, en caso contrario no dispones de esos pines como entrada-salida.

F.
Todos los días se aprende algo nuevo.

Desconectado marcelo2112

  • PIC12
  • **
  • Mensajes: 64
Re: En la simulacion funciona, en la realidad no
« Respuesta #2 en: 30 de Agosto de 2010, 10:38:28 »
como me aseguro de que este con oscilador interno??porque en el icprog cuando cargo el HEX me aparece oscilador XT, yo lo pongo en inRC y funciona.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: En la simulacion funciona, en la realidad no
« Respuesta #3 en: 30 de Agosto de 2010, 13:13:48 »
No tengo el iCprog pero lo mas seguro es que disponga una opcion de configurar los "Fuses" y en ese sitio se puede configurar el oscilador como interno.
Pero si lo tienes como XT me parece que no esta como interno.
Un ejemplo de configuacion podria ser:
Esta es la configuración para los fuses del 16F628A:

@ DEVICE pic16f628A, INTRC_OSC_NOCLKOUT 'Reloj interno solo
@ DEVICE pic16f628A, WDT_OFF ' Watchdog Timer desconectado
@ DEVICE pic16f628A, PWRT_ON ' Power-On Timer conectado
@ DEVICE pic16f628A, BOD_ON ' Brown-Out Detect conectado
@ DEVICE pic16f628A, MCLR_OFF ' Master Clear Externo desconectado
@ DEVICE pic16f628A, LVP_OFF ' Low-Voltage Programming desconectado
@ DEVICE pic16f628A, CPD_OFF ' Data Memory Code Protect desconectado

No hace falta el XT_OSC, ya que si no usas DEFINE OSC, la frecuencia que asume PBP es 4mhz y es XT, lo que si tienes que deginir es para cuando uses frecuencias mas altas HS.
Pero depende del compilador utilizado y puedes verlo aquí:
http://www.todopic.com.ar/foros/index.php?topic=19391.0

F.
« Última modificación: 30 de Agosto de 2010, 13:18:10 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado marcelo2112

  • PIC12
  • **
  • Mensajes: 64
Re: En la simulacion funciona, en la realidad no
« Respuesta #4 en: 31 de Agosto de 2010, 08:38:57 »
Gracias por tu ayuda, pero el microcode studio no me reconoce esas instrucciones.