Forum: Compiler & IDEs Taster Interrupt


von Dan_Schneider (Gast)


Lesenswert?

Guten Abend,

ich brauche euer geschultes Auge für einen Taster Interrupt. Ich glaube 
ich seh den Wald vor lauter Bäumen nichtmehr.
Problem: Ich komme einfach nicht in die Routine rein.
Hardware: ATMega48; Taster an PD6 -> PCINT22

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
4
ISR(PCINT2_vect)
5
{
6
  PORTB &= ~(1<<DDB1);
7
  //TCCR0A = (1<<CS01);
8
}
9
10
ISR(TIMER0_COMPA_vect)
11
{
12
  
13
}
14
15
int main(void)
16
{
17
  DDRB = (1 << DDB0) | (1 << DDB1) | (1 << DDB2);
18
  ///Clear all LEDS
19
  PORTB = 0x00;
20
  
21
  DDRD |= (1<<DDD6);
22
  PORTD = (1<<DDD6);
23
  
24
  PORTB = (1<<DDB1);
25
  
26
  PCICR = (1<<PCIE2);
27
  PCMSK2 = (1<<PCINT22);
28
  //Timer starten
29
  //TCCR0A = (1<<CS01);
30
  TIMSK0 |= (1<<TOIE0);
31
  
32
  sei();
33
  
34
    while(1)
35
    {
36
        PORTB |= (1<<DDB1);
37
    }
38
}

von Justus S. (jussa)


Lesenswert?

Dan_Schneider schrieb:
> Problem: Ich komme einfach nicht in die Routine rein.

und das merkst du wie?

von N.G. (Gast)


Lesenswert?

schon mal daran gedacht, dass du den Port zu schnell für Auge 
umschaltest? Wenn ne LED dranhängt sieht man da nix.
Ein delay kann Abhilfe schaffen.
Ein Timer wäre aber besser

von Karl H. (kbuchegg)


Lesenswert?

>   DDRD |= (1<<DDD6);

Das wird auch schwierig, wenn du den Pin auf Ausgang schaltest.

von Wilhelm F. (Gast)


Lesenswert?

Dan_Schneider schrieb:

> Guten Abend,
>
> ich brauche euer geschultes Auge für einen Taster Interrupt. Ich glaube
> ich seh den Wald vor lauter Bäumen nichtmehr.
> Problem: Ich komme einfach nicht in die Routine rein.

Was möchtest du eigentlich konkret tun?

Tastendruck     : Aktion
Taste los lassen: Aktion beenden?

von Peter D. (peda)


Lesenswert?

Dan_Schneider schrieb:
> Taster Interrupt

Dazu fällt mir immer "antagonistischer Widerspruch" ein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.