Mein Interruptprogramm funktioniert nicht

Gast #3181184
Autor: Markus M. (Gast)

Datum: 28.05.2013 10:49

------------------------------------------------------------------------ 
--------





Hallo zusammen,

ich beschäftige mich mit der c coontrol pro und habe folgendes Programm
geschrieben:
1
#define LED1 0
2
#define SW1 27
3

4
int cnt;
5
int i;
6

7
void main(void)
8
{
9
 Port_DataDirBit(LED1,PORT_OUT);
10
 Port_DataDirBit(SW1, PORT_IN);
11

12
 Irq_SetVect(INT_1,IRQ);
13
 Ext_IntEnable(0,2);
14

15
 cnt=0;
16

17
 while(1)
18
 {
19
  if(cnt==1)
20
  {
21
   Port_WriteBit(LED1,PORT_ON);
22
   AbsDelay(20000);
23
  }
24
  if(cnt==2)
25
  {
26
   for(i=0;i<10;i++)
27
   {
28
    Port_WriteBit(LED1,PORT_ON);
29
    AbsDelay(1000);
30
    Port_WriteBit(LED1,PORT_OFF);
31
    AbsDelay(1000);
32
   }
33
  }
34
  AbsDelay(5000);
35
 }
36
}
37

38
void IRQ(void)
39
{
40
 cnt=Irq_GetCount(INT_1);
41
}
Das Programm wurde richtig kompiliert und übertragen( natürlich auch
gestartet). Doch die LED leuchtet nicht, egal wie oft ich auf SW1
drücke. Die Bauteile sind funktionsfähig und richtig eingesetzt. Kann
mir jemand verraten, was ich falsch gemacht habe ?

Danke im Voraus

Markus
#3181234
Hmm. Wenn ich mir hier
http://www.c-control-pro.de/documentation/index.html

die Hardware Doku zum Mega32 Board ansehe, dann scheint der SW1 auf den 
Interrupt 0 zu liegen und nicht am INT_1
Sehe ich in der Doku zum Mega128 Board nach, dann liegt der SW1 
scheinbar auf INT4 und nicht am INT_1

Abgesehen davon denke ich, dass du in einem Forum, welches sich auf die 
C-Control spezialisiert hat, wesentlich besser aufgehoben bist, als hier 
bei uns.

zb
http://ccpro.cc2net.de/forum/index.php
(Es mag noch andere Foren zur C-Control geben.)
Gast #3181240
Hmm... Ich kenne die C-Control zwar nicht, aber irgendwie scheinen die 
IRQ-Nummern nicht zu stimmen.

INT_1 --> externer Interrupt1
Ext_IntEnable(0,2); --> ext. IRQ 0
#3181269
Markus M. schrieb:
> Das ist es vielleicht. Ich kam nie mit dem Befehl Ext_IntEnable()
> zurecht. Was bedeutet dann eigentlich die 2?


Ähm.
Ich hab dir einen Link auf ein Forum verlinkt.
Da gibt es auch einen Punkt 'Online-Manual'.
Das solltest du wirklich ernst nehmen. Denn niemand hier hat Lust, für 
dich die Dinge aus der Hilfe herauszusuchen, die du dir auch selbst 
raussuchen kannst.

http://www.c-control-pro.de/documentation/index.html
Gast #3181503
1
#define LED1 0
2
#define SW2 27
3

4
int cnt;
5
int i;
6

7
void main(void)
8
{
9
 Port_DataDirBit(LED1, PORT_OUT);
10
 Port_DataDirBit(SW2, PORT_IN);
11

12
 Irq_SetVect(INT_1,IRQ);
13
 Ext_IntEnable(1,2);
14

15
 cnt=0;
16

17
 while(1)
18
 {
19
  if(cnt==1)
20
  {
21
   Port_WriteBit(LED1,PORT_ON);
22
   AbsDelay(20000);
23
  }
24
  if(cnt==2)
25
  {
26
   for(i=0;i<10;i++)
27
   {
28
    Port_WriteBit(LED1,PORT_ON);
29
    AbsDelay(1000);
30
    Port_WriteBit(LED1,PORT_OFF);
31
    AbsDelay(1000);
32
   }
33
  }
34
 AbsDelay(5000);
35
 }
36
}
37

38
void IRQ(void)
39
{
40
 cnt=Irq_GetCount(INT_1);
41
}

Dieses Programm sollte eigentlich funktionieren. Aber das tut es nicht
Gast #3181688
Markus M. schrieb:
> Und das andere Forum hilft mir auch nicht

Das ist dann schlecht. Hier im Forum hat vermutlich überhaupt niemand 
Erfahrung mit dem Gerät, im anderen Forum wäre das eigentlich zu 
erwarten gewesen. Dann bliebt dir wohl nur, das Problem selber zu lösen.

Oliver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.