Tasterabfrage_Stoppuhr_funktioniert_nicht

Gast #3651666
Lesenswert?
• ▲
▼
Hallo,

ich bin dabei eine Stoppuhr mit mechanischer 7 Segment Anzeige zu bauen.
Die Anzeigen habe ich von Einer alten Tankstelle.
Ich habe schonsehr viele Beiträge in diesem Forum gelesen und auch viele 
Erkenntnisse gewonnen. Wie 
z.B.:Beitrag "Problem: Stoppuhr in C (Interrupts und Pull-Ups)"

C Programmieren kann ich, aber mit Microcontroller hab ich erst 
angefangen.

Ich benötige nun eure Hilfe. Die Tastenabfrage fuktioniert nicht 
richtig.
Taster wird auf logisch 1 gezogen bei Tastendruck.

Ich würde gerne mit einem Taster die Uhr starten, anhalten( Zeit soll 
angezeigt bleiben) und zurücksetzen.

Versuche schon lange eine Lösung zu finden aber anscheinend werden meine 
Versuche immer verwirrter!

Den Code hab ich angehängt.

Bitte un eure Hilfe!!

Lg HansC
Angehängte Dateien:
#3651807
Lesenswert?
• ▲
▼
Hallo HansC,

du solltest Dich mit Bitmanipulationen beschäftigen:
http://www.mikrocontroller.net/articles/Bitmanipulation

Die AVR Register Belegungen dann besser lesbar und du kannst das weiter 
Abstrahieren mit #defines.

Als weiteres nutze dieses Macros in "sbit.h", Entwickler Peter PeDa.

http://www.mikrocontroller.net/attachment/60772/sbit.h

Damit sind da so Sachen machbar:
1
#define LED1         SBIT( PORTD, 0 )
2
#define LED1_DDR     SBIT( DDRD, 0 )
3
LED1_DDR = 1 // enable output pins
4
LED1 = 1 // LED1 high
5
LED1 = 0 // LED1 low

Auch kann man Eingänge definieren und Abfragen.
1
#define KEY1         SBIT( PORTD, 1 )
2
#define KEY1_DDR     SBIT( DDRD, 1 )
3
KEY1_DDR = 0 // enable input pins
4
if ( ! KEY1 ) { ... }

Eine Weiterentwicklung ist dann dieses Paket:
http://www.mikrocontroller.net/attachment/215365/sbit.h

Taster sollten man nach GND Schalten und den internen Pullup 
eingeschalten.

Zur Auswertung von Tastern nutze dann die PeDa Entprellung:
Beitrag "Tasten entprellen - Bulletproof"
und viele andere Beiträge im Forum.

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.