Autor Tema: Interrupciones con MPLAB C18  (Leído 3733 veces)

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

Desconectado C4_ESP

  • PIC10
  • *
  • Mensajes: 4
Interrupciones con MPLAB C18
« en: 21 de Febrero de 2006, 06:04:00 »
Hola  todos:

Lo primero espero no haber repetido un link ya existente pues llevo 1 hora en la busqueda y no encuentro nada.

Bueno al grano, quiero generar interrupciones en dichos micros con dicho compilador pero en el manual de microchip sólo encuentro lo siguiente:

ClosePORTB Disable the interrupts and internal pull-up resistors for PORTB.
CloseRBxINT Disable interrupts for PORTB pin x .
DisablePullups Disable the internal pull-up resistors on PORTB.
EnablePullups Enable the internal pull-up resistors on PORTB.
OpenPORTB Configure the interrupts and internal pull-up resistors on PORTB.
OpenRBxINT Enable interrupts for PORTB pin x .

Vamos que lo único que he podido hacer con esas funciones es...

#include <p18f442.h>
#include <portb.h> //libreria de interrupciones del puerto B

void main(void)
{
for( ;; ) //bucle infinito
   {
   OpenPORTB( PORTB_CHANGE_INT_ON & PORTB_PULLUPS_ON); //Configure the interrupts and internal pull-up resistors on PORTB.
   }
}

Con esta función habilito las interrupciones en el puertob pero donde y como implemento mi función de interrupción...

Espero que algún buen samaritano me ayude pues o esto es más difici que encontrar una aguja en un pajar o estoy exo un lio...y creo que es lo segundo
LlorandoLlorando

Desconectado grouchy

  • PIC10
  • *
  • Mensajes: 39
RE: Interrupciones con MPLAB C18
« Respuesta #1 en: 24 de Febrero de 2006, 10:59:00 »
Hola, pues para atender a las interrupciones con C18, ya que las habilitaste y todo eso, tenemos:

#pragma interruptlow ‘nombre-función’
Indica al compilador que ‘nombre-función’ es la rutina de servicio de atención a la
interrupción con prioridad baja.
• Utiliza la pila software para guardar el contexto.
• Sale de la interrupción con el retorno normal.
• Sobrecarga de 10 acceso a WORD respecto a I. con alta prioridad.
• Se pueden encadenar. Indicarlo por software al procesador.
#pragma interrupt ‘nombre-función’
Indica al compilador que ‘nombre-función’ es la rutina de servicio de atención a la
interrupción con prioridad alta.
• Utiliza los registros SHADOW para guardar el contexto.
• Sale de la interrupción con un retorno rápido.
• Se usan para secciones críticas en tiempo.

Pero para ello debes definir el vector de interrupcion como en el ejemplo siguiente:
1. #include <p18f452.h>
2. void low_isr(void);
3.
4. // configuro el vector de interrupción LOW
5. #pragma code low_vector=0x18
6. void low_interrupt(void) {
7. _asm GOTO low_isr _endasm
8. }
9.
10. // Esta es la Rutina de Servicio de la Interrupción
11. #pragma interruptlow low_isr
12. void low_isr (void) {
13. // instrucciones
14. }

Desconectado C4_ESP

  • PIC10
  • *
  • Mensajes: 4
RE: Interrupciones con MPLAB C18
« Respuesta #2 en: 01 de Marzo de 2006, 03:22:00 »
eeeeeeeeeeeeeehhhhhhhh, ummmmmmmmmmmmmmmmm LloricaLloricaLloricaLloricaLloricaLloricaLlorica

Muchas gracias por la información, lo probaré, pero de donde has sacado toda la información ya que en el manual de microchip no viene, me quedo flipao, porque o una de dos sois unos cracks o naceis ya con toda esa información...

Haber si me puedes decir donde encontrar un manual o algún sitio donde venga todo eso y más como timers, TX/RX, etc...

Muchas gracias, ya pensaba que nadia sabia hacer esto SonrisaSonrisaSonrisa

Desconectado grouchy

  • PIC10
  • *
  • Mensajes: 39
RE: Interrupciones con MPLAB C18
« Respuesta #3 en: 01 de Marzo de 2006, 16:24:00 »
Hola.
Je je je , no estoy seguro de que manual hablas de microchip, pero en el que yo tengo si viene, lo unico que hice fue colocarlo en español. Ojala hubiera nacido con todo ese conocimiento  Muchas risas.
Aqui te dejo algunos Links:
http://www.microchip.com/c18
y esta es la guia que yo solia ocupar, porque ahora estoy en CCS
http://ww1.microchip.com/downloads/en/devicedoc/mplab_c18_users_guide_51288j.pdf

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Interrupciones con MPLAB C18
« Respuesta #4 en: 02 de Marzo de 2006, 17:53:00 »
Además de estar la información en las datasheet, el C18 trae varios ejemplos donde te puedes dar cuenta como trata las interrupciones.

Yo aprendí con eso.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything