Guten Tag,
Ich bin relativ neu hier im Forum, und hoffe mal, dass mein Post hier am
richtigen Ort gelandet ist ;)
Zu meinem Problem:
Ich bin gerade an einem Projekt mit einem ATMega328 (Programmiere mit
AtmelStudio 6.2) und wollte nun für meine 6 Tasten eine Flankenerkennung
einbauen, aber dies scheint mir noch nicht so gelungen. Ich habe
inzwischen schon so einiges Probiert, das Internet durchsucht, aber
nichts gefunden.
Das Spezielle ist auch noch: Bei betätigung der Tasten tut sich nichts
(habe testweise eine Software geschrieben, die mir auf einem Display
anzeigt, welche Taste gedrückt wird und dies für ca 1 Sek auf dem
Display behält.
Eine Ausnahme macht sich da aber die Taste 2, die einfach ganz normal
mit der Flankenerkennung funktoniert. Nun frage ich mich, woran der
Fehler liegt, da laut meinem Logischen vorstellungsvermögen die Software
funktionieren Sollte.
Hier meine Funktion:
1 | unsigned int tastemomvor = 0;
|
2 |
|
3 | unsigned int tastenabfrage(void){
|
4 | unsigned int tastemom = 0;
|
5 | if(!TASTE1){
|
6 | tastemom = tastemom | 1 ;
|
7 | }
|
8 | if(!TASTE2){
|
9 | tastemom = tastemom | 2;
|
10 | }
|
11 | if(!TASTE3){
|
12 | tastemom = tastemom | 4;
|
13 | }
|
14 | if(!TASTE4){
|
15 | tastemom = tastemom | 8;
|
16 | }
|
17 | if(!TASTE5){
|
18 | tastemom = tastemom | 16;
|
19 | }
|
20 | if(!TASTE6){
|
21 | tastemom = tastemom | 32;
|
22 | }
|
23 | if(tastemomvor == tastemom){
|
24 | return 0;
|
25 | }
|
26 | tastemomvor = tastemom;
|
27 | return tastemom;
|
28 | }
|
Ich hoffe mal, dass mir jemand helfen kann, denn sonst muss ich mein
Projekt schlussendlich ohne Flankenerkennung fertigstellen :/
Vielen Dank, DJManuel