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 FrankT - 27.04.2006 18:16)
Als Antwort auf Re: SW1/2 und INT4/6 von PeterS - 27.04.2006 7:42
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
Ich habe das Programm mal auf das Wesentliche zusammengeschrumpft:

void s1_int(void) {  // ISR SW1

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

  Irq_GetCount(INT_4);  // Clear Interrupt-Flag

}



void s2_int(void) {  // ISR SW2

  Msg_WriteChar('2');

  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(INT_4, 2);  // activate interrupt
 for both edges
  Irq_SetVect(INT_6, s2_int);

  Ext_IntEnable(INT_6, 2);

  while (true) ;

}

> Hi,
>
> bitte das vollständige Programm mit dem IRQ_SetVect Aufruf angeben. Ich sehe mir das am
> Wochenende an.
>
> Gruss Peter
>
> > Hallo,
> > ich habe versucht, beim Drücken/Loslassen von SW1 bzw. SW2 je einen Interrupt auslösen zu lassen,
> > da diese ja auf INT4 bzw. 6 liegen.  (CCPro128+AppBoard)
> > Dazu habe ich die Ports E.6 und E.4 als Eingang definiert. Danach mit WriteBit die PullUps aktiviert.
> > Zum SchluÃ? noch den IRQ_SetVect und Ext_IntEnable(INT_4,2).
> > Aber es wid nie ein Interrupt ausgelöst. (Die Taster schalten gegen Masse, da der PullUp ja gegen Vcc geht).
> > Wo liegt hier der Fehler?


    Antwort schreiben


Antworten:

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