Autor Tema: Interrupciones en MKB  (Leído 2101 veces)

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

Desconectado Moyin

  • PIC16
  • ***
  • Mensajes: 102
Interrupciones en MKB
« en: 10 de Enero de 2007, 03:51:20 »
Un buen año para todos mis buenos compañeros de este tan exelente foro......Después de una larga auscencia regreso a buscar mediante su ayuda aclarar una serie de dudas, siguiendo terquenado al MKB me he topado con las interrupciones, he leido creo que toda la teoría acerca de este tema pero al revisal el HELP del MKB solo veo unos pocos ejemplos que no me dejan claro algunos puntos, trate de programar de acuerdo al orden del ensamblador y no hago nada con el programa, no me queda calro el por que del:

sub procedure interrupt
if INTCON.TMR0IF = 1 then attente = attente+1
TMR0 = 96
INTCON.TMR0IF = 0
 etc....
relicé un ejemplo del foro y lo quise cambiar para hacerlo como contador de impulsos externos a través del TOCK1 pero no consigo nada, espero pueadan ayudarme he aqui el programa:

program TMRO2
' Este programa produce el encendido del led en RBO cada interrupciòn del TMRO
'al recibir imnpulsos externos a travès del TOCKI(RA4)
dim conta as byte
sub procedure interrupt

  if INTCON.T0IF = 1 then 'Checa bandera de interrupciòn del TMRO
   conta = conta + 1      'Incrementamos conta por cada interrupciòn

    INTCON = $20          'Activamos la interrupciòn del TMRO (TOIE=1)

  if conta=1 then         'Verifica que halla desbordamiento del TMRO
  conta=0                 'Resetea contador
  portb.0=1               'Pone "1" en RB0 si se ha producido la interrupción
 
    else
  portb.0=0               'Si no permanece en "0"
    end if
  end if
 end sub

  main:
  option_reg=%01110000   'Divisor a 2, y asignadoa a TMRO(PSA),Incremento
                         'flanco ascendente TOSE=0, Como contador TOCS=1
  intcon=%10100000       ' Habilitamos las interrupciones GIE=1 y el TOIE=1

  trisa=255
  trisb=0                'Puerto B como salida
  portb=0                'Limpiamos el puerto B
  porta=0

  end.

Sinceramente estoy solo suponiendo pero no encuentro ninguna guia que me oriente, espero puedan ayudarme...Gracias....................Saludos :lol:


Sonrie Cristo te ama

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Interrupciones en MKB
« Respuesta #1 en: 10 de Enero de 2007, 06:08:26 »
¿qué micro es este? ¿el 16F84?

Deberías de borrar el registro conta al inicio del programa

main:
conta=0

sub procedure interrupt
if INTCON.TMR0IF = 1 then attente = attente+1
TMR0 = 96
INTCON.TMR0IF = 0

La bandera de interrupción se borra durante el llamado a la rutina de interrupción, creo que lo haces en esta linea:
    INTCON = $20          'Activamos la interrupciòn del TMRO (TOIE=1)

Es noche (1:09AM) y me voy a dormir, luego lo miro con mas calma.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Interrupciones en MKB
« Respuesta #2 en: 10 de Enero de 2007, 10:50:58 »
Habra algun inconveniente que el RA4 sea colector abierto. ¿Tendra que llevar la resitencia PULL?.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Interrupciones en MKB
« Respuesta #3 en: 10 de Enero de 2007, 13:48:35 »
Eso pudiera ser, lo mas seguro es que eso sea.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee