Autor Tema: Programacion Pic18F2550 + Simulacion en Proteus 8.9  (Leído 440 veces)

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

Desconectado JMKaltenmeier

  • PIC10
  • *
  • Mensajes: 31
Programacion Pic18F2550 + Simulacion en Proteus 8.9
« en: 16 de Abril de 2020, 11:56:17 »

Lo que hago es lo siguente:

Código: [Seleccionar]

    INTCONbits.GIE = 1;   
    INTCONbits.PEIE = 0; 
   
    PIE1bits.TMR1IE= 1;     
   
    INTCONbits.RBIE = 0; 
    INTCONbits.RBIF = 0; 

la rutina de interrupcion la escribo como lo indica la guía de XC8.

Código: [Seleccionar]
void __interrupt() ISR(void)
{
   
  //aun no le pongo ningún código en el cuerpo
   
    return;
}

El problema es el siguiente. Al simular tengo problemas cuando seteo los bits PEIE y RBIE.
El bit PEIE me jode al Timer ya que, este modulo lo estoy utilizando para otra cosa, si bien la interrupción del timer esta habilitada, no quiero que llame a la rutina de interrupción. Por lo cual cuando PEIE=1 no ejecuta el programa adecuadamente, por eso que lo dejo en 0, y todo anda bien.

Ahora el GIE=1, para habilitar las interrupciones Globales, lo necesito para el puerto B. Luego cuando pongo  el bit RBIE en uno. YA me deja de andar el programa en Proteus, y eso que ni siquiera estoy usando la interrupción, solo pongo en alto el bit para habilitarla, no debería tener efecto en el programa, si yo no modifico el estado de RB4.


dejo adjunto imágenes de lo que sucede:

Imagen 1: las formas de onda de corriente en la Flyback, que son comparadas con una referencia de 3.6V (CVREF), se forman triángulos debido al control de corriente que se hace con los comparadores analógicos. la base de la secuencia de triángulos junto con el tiempo muerto la determina la temporizacion del Timer1. En esta imagen RBIE=0, y PEIE=0, interrupcion del puerto B deshabilitada y la de los perifericos, el codigo anda fenómeno.

Imagen 2: Aqui tenemos RBIE=0, y PEIE=1, Vemos que el timer hace una primera temporizacion, cuando desborda se activa el flag y al parecer va a la rutina ISR(cosa que no quiero) que no tiene nada dentro del cuerpo. Al salir de la rutina ya el programa no funciona, debido a que se dejo una "llave" cerrada y la corriente crece..... De igual manera esto no importa ya que dejo PEIE=0 y todo anda bien. Solo quiero saber como hacer para que PEIE=1, habilitar la interrupcion del timer y que no vaya a esa rutina cuando desborde.

Imagen 3: Aqui RBIE=1, y PEIE=0, Directamente el código ya no funciona. Solo habilito la interrupción del puerto B, o hago nada con el puerto RB4 y no funciona, no se que problema puede ser.


Voy a dejar un Rar adjunto, con los códigos por si alguien lo quiere ver.
Notar que Pulso() es una rutina en "ASM" que la llamo desde el codigo en C. esto es para tener un mayor control en el tiempo de las comparaciones con la referencia.

Desconectado JMKaltenmeier

  • PIC10
  • *
  • Mensajes: 31
Re:Programacion Pic18F2550 + Simulacion en Proteus 8.9
« Respuesta #1 en: 16 de Abril de 2020, 11:57:07 »
codigos

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re:Programacion Pic18F2550 + Simulacion en Proteus 8.9
« Respuesta #2 en: 16 de Abril de 2020, 12:50:45 »
Amigo,
No deberías de poner el mismo tema en varios lugares a la vez.
No por ello se te va a contestar antes y ademas de ir contra las normas del foro, origina perdida de tiempo a las personas que puedan responderte.
Mi consejo es que elimines un hilo en uno de los lugares.

Desconectado JMKaltenmeier

  • PIC10
  • *
  • Mensajes: 31
Re:Programacion Pic18F2550 + Simulacion en Proteus 8.9
« Respuesta #3 en: 16 de Abril de 2020, 13:31:21 »
Amigo,
No deberías de poner el mismo tema en varios lugares a la vez.
No por ello se te va a contestar antes y ademas de ir contra las normas del foro, origina perdida de tiempo a las personas que puedan responderte.
Mi consejo es que elimines un hilo en uno de los lugares.

Como elimino uno?

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re:Programacion Pic18F2550 + Simulacion en Proteus 8.9
« Respuesta #4 en: 17 de Abril de 2020, 08:53:17 »
Lo seleccionas y le das a borrar.
Tienes un botoncito donde te pone eliminar. Si miras justo al lado de " citar"  lo verás
« Última modificación: 17 de Abril de 2020, 09:01:08 por Fer_TACA »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7856
Re:Programacion Pic18F2550 + Simulacion en Proteus 8.9
« Respuesta #5 en: 17 de Abril de 2020, 12:45:24 »
No siempre, debe tener los permisos para eso.