Mein Interruptprogramm funktioniert nicht

Gast #3181184
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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.)
#3181269
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.