Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: SW1/2 und INT4/6 Kategorie: Programmierung C (von PeterS - 6.05.2006 12:45)
Als Antwort auf Re: SW1/2 und INT4/6 von FrankT - 27.04.2006 18:16
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128
Hi,

ich war letztes Wochenende leider verhindert, deshalb die Antwort mit Verspätung. Es ist etwas
mi�verständlich im Handbuch. Der IRQ Parameter von Ext_IntEnable() ist eine Zahl zwischen 0 und 7.
Nicht zu vergessen mit den Vektoren, für die es defines gibt. Hier das funktionierende Beispiel:

void s1_int(void) {  // ISR SW1

  Msg_WriteChar('1');  // Just let me know
         Msg_WriteChar(13);

  Irq_GetCount(INT_4);  // Clear Interrupt-Flag

}



void s2_int(void) {  // ISR SW2

  Msg_WriteChar('2');
        Msg_WriteChar(13);

  Irq_GetCount(INT_6);

}



void main(void) {

  Port_DataDirBit(PORT_SW1, 0);  // port is input

  Port_WriteBit(PORT_SW1, 1);   // with pull-up

  Port_DataDirBit(PORT_SW2, 0);

  Port_WriteBit(PORT_SW2, 1);

  Irq_SetVect(INT_4, s1_int);  // set interrupt vector

  Ext_IntEnable(4, 2);  // activate interrupt for both edges
  Irq_SetVect(INT_6, s2_int);

  Ext_IntEnable(6, 2);

  while (true);

}



    Antwort schreiben


Antworten:

Re: SW1/2 und INT4/6 (von FrankT - 7.05.2006 0:45)