Hallo zusammen,
ich habe folgendes Problem. Ich möchte eigentlich nur
einen Taster abfragen und dazu eine LED ansteuern.
Also Taster drücken -> LED an
Taster noch einmal drücken -> LED aus.
Taster drücken -> LED an
usw.
Als Programmiersprache benutze ich C++
Ich möchte diese über einen Interrupt steuern.
Muss man Software mäßig auch dafür sorgen, dass der Taster nicht prellt ?
Oder macht das der Interrupt selber ?
Sorry aber ich bin noch Laie auf dem Gebiet.
Hier mal mein Code:
#include <stdio.h>
#include <wiringPi.h>
#define LEUCHTDIODE 5 // wiringPi Pin 5
#define TASTER 0 // wiringPi Pin 0
#define PAUSE 500
using namespace std;
bool status=false;
void interrupt_0(void)
{
printf("Interrupt ausgelöst");
if (status==false)
{
digitalWrite(LEUCHTDIODE, LOW);
cout << "LED aus" << endl;
status=true;
}
else
{
digitalWrite(LEUCHTDIODE, HIGH);
cout << "LED an" << endl;
status=false;
}
}
main()
{
wiringPiSetup();
pinMode(TASTER, INPUT);
pullUpDnControl(TASTER,PUD_DOWN);
wiringPiISR (0, INT_EDGE_RISING, interrupt_0) ;
for ( ; ; )
{
int waitForInterrupt(TASTER, -1);
}
}
Der Aufbau ist:
3,3V -> Taster
Taster -> 1k
1k -> Pin0
Pin6 -> LED
LED -> 560Ohm
560 Ohm -> Masse
Wenn ich auf den Taster drücke passiert nix.
Drücke ich aber mehrmals kurz hintereinander drauf, so sehe ich auf der Konsole irgendwann:
"Interrupt ausgelöst" viele male hintereinander stehen. Also irgendwie unkontrolliert.
Hätte jamand mal etwas Code für mich ?
Oder kann mir jemand dazu ein Tipp dazu geben ?
Denn ich hänge hier schon Stunden vor dem Rechner und finde im Netz einfach nichts.
Auch der Code unter:
Sensor-Signal per Interrupt abfragen
klappt bei mir nicht.
Vielen Dank für Eure Hilfe
Gruß
Juppy