Warum funktionieren Taster plötzlich nicht mehr?

Gast #1229450
Hi Leute,

ich habe ein total blödes Problem und absolut keine Ahnung was daran 
Schuld ist oO.

Ich möchte einfach nur ein Programm haben, bei dem ich eine Taste drücke 
und dann eine LED leuchtet... (Oder vonmiraus auch andersrum, dass sie 
aufhört zu leichten!)
Ich weiß das ist ein ganz einfaches Problem und ich habe früher auch 
genug Programme geschrieben, mit dennen ich LEDs mit Taster einschalten 
kann. Allerdings funktioniert jetzt keines mehr!
Hier mal der Code...
1
#include <stdio.h>
2
#include <avr/io.h>
3

4
int main(void)
5
{
6
  PORTC = 0xFF;  // Alle LEDs aus
7
  DDRC = 0xFF;  // C als Ausgang
8

9
  DDRA = 0x00;  // A als Eingang
10
  PORTA = 0xFF;  // Pullups aktiv
11

12
  while(1)
13
  {
14
    PORTC = ~PINA;
15
  }
16
}

Jetzt sollten doch die LEDs an Port C leuchten, wenn ich an PIN A 
irgendwo draufdrücke. Aber da tut sich absolut nichts!

Mein eigentliches Ziel ist es, mit einem Joystick in einem Programm auf 
dem Display weiter zu schalten, aber es funktioniert ja nicht einmal so 
ein kleines Programm mit den Tasten... (auch nicht mit dem Joystick...)
Hat jemand Ideen?????
Gast
jtag fuse ist gesetzt. Muss ich das löschen???

Und warum muss ich da ein delay einbauen? Der nimmt doch automatisch den 
Wert und übergibt ihn gleich wieder...sprich die LED sollte Leuchten 
solange ich auf Taster drücke...
Gast wrote:
> jtag fuse ist gesetzt. Muss ich das löschen???

Solange jtag aktiviert ist, sind einige Pins am Port C mit einer 
Sonderfunktion belegt, sodass der Port nicht mehr normal zu gebrauchen 
ist.

> Und warum muss ich da ein delay einbauen?

Vergiss den delay. Dein Programm ist so als Testprogramm in Ordnung.
Gast
Ok danke, jetzt schaffe ich es zumindest, mit dem Taster vom STK500 die 
LED zu schalten.

Allerdings möchte ich das ganze mit dem Joystick auch schaffen!
Beim STK500 Taster ist es so:
ungedrückt: 5 V
gedrückt: 0 V


bei meinem Joystick:
ungedrückt: 0 V
gedrückt: 5 V


Jetzt sollte doch das gleiche Programm nur durch den Austausch der 
Taster gleich funktionieren, nur mit dem Unterschied, dass die LED 
verkehrt herum funktioniert... Tut sie aber nicht! Warum?

Sprich wenn ich jetzt den STK500 Taster drücke, geht die LED aus.
Dann sollte doch die LED auch ausgehen, wenn die den PIN auf Joystick 
umstecke... tut sie aber nicht. Und beim drücken tut sich auch nix.

Kann mir das jemand erklären?
Gast
ich vermute, dass bei dem joystick nicht 0V, d.h. GND anliegt sondern 
der kontakt offen ist ... durch den aktivierten PULL-UP wird das dann zu 
5V

PULL-UP deaktivieren würde ich mal versuchen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.