- LiTime Speicher und Akkus         
Ergebnis 1 bis 7 von 7

Thema: Problem beim Atmega mit Taster abfrage

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.06.2008
    Beiträge
    56

    Problem beim Atmega mit Taster abfrage

    Anzeige

    Praxistest und DIY Projekte
    Hallo.
    Ich habe ein Problem beim Programmieren in Bascom. Ich möchte eine Led einschalten wenn ich ein Taster drücke. Doch leider reagiert der Atmel nicht auf den Taster. Ich nutze einen Atmega32(16Mhz Quarz).
    Kann bitte Jemand den Text überprüfen?

    $regfile = "m32def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
    $framesize = 32 'Stackanweisungen, die eigentlich nur bei größeren Programmen
    $swstack = 32 'wirklich nötig werden
    $hwstack = 32
    $crystal = 16000000 'Die Frequenz des verwendeten Quarzes




    Config Portb.1 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)
    Led Alias Portb.1
    Config Pinc.4 = Input 'Ein Pin (PA0) wird als Eingang definiert
    Taster Alias Pinc.4


    do
    If Taster = 0 Then
    Led=1 'Pin wird auf High, also 5V geschaltet
    else
    Led = 0 'Pin wird auf Low, also 0V geschaltet
    endif
    Waitms 100
    loop



    Im Anhang habe ich den Schaltplan eingefügt. Die Platine ist selbst geätzt. Es funktioniert soweit auch alles außer die Taster. Ich kann ein Display ansteuern, die Leds funktionieren und auch das Relais lässt sich ansteuern. An X1,X2,X3 werden die Taster angeschlossen.
    Danke Gruß Daniel
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pp.jpg  

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Deinen Schaltplan kann man leider nur sehr schwer bis hin zu gar nicht lesen
    Hast du den Pin wo der Taster angeschlossen ist mit einem Pull-up auf Vcc gezogen, sodass der Taster eine Verbindung nach GND herstellt?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Ich habe zwar noch nie mit so einem großen Controller wie dem Mega32 gearbeitet, habe aber schon öfter mal gelesen, dass das JTAG-Interface einem in die Suppe spucken kann. Das besteht beim Mega32 aus den Anschlüssen C5, C4 (!!!), C3 und C2. Im Auslieferungszustand ist dieses Interface aktiv, wodurch diese Anschlüsse zunächst nicht als "normale" Anschlüsse verwendet werden können.

    Wenn Du auf Fusebit-Ebene das JTAG-Interface deaktivierst, könnte es eventuell klappen.
    Oder Du versuchst, ohne die genannten 4 Anschlüsse auszukommen.

    Auf alle Fälle muss (wie Kampi ja schon geschrieben hat) sichergestellt sein, dass der Anschluss auf irgendeinem "sauberen" Pegel liegt, wenn der Taster offen ist. D.h. er darf nicht einfach "in der Luft hängen", sondern muss über einen hochohmigen Widerstand auf +5V oder GND gezogen werden (je nachdem ob der Taster nach GND oder +5V geht). Am einfachsten geht das mit den eingebauten PullUp-Widerständen, die Du über das PORT-Register aktivierst, wenn ein Anschluss als Eingang konfiguriert ist.

    Der Rest vom Programmcode ist o.k.!

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ich denke auch dass es nicht am Code liegt. Dieser ist i.o. Eventuell könntest du den Taster Softwaremässig noch entprellen da die LED sonst für eine kurze Zeit an und aus geht (siehst du zwar nicht und bei einer LED ist das eigentlich auch egal). Wenn du einen Zähler hättest der bei Tastendruck 1 hochzählen soll würde das prellen stören, weil er jeden High-Pegel des prellenden Tasters zählen würde (so ein Controller ist halt schneller als die Tastermechanik )
    Ließ dir mal das hier durch
    http://halvar.at/elektronik/kleiner_...er_entprellen/
    Und deaktivier mal das JTAG Interface wie es Sauerbruch gesagt hat. Dies könnte das Problem lösen. Das aktivierte JTAG spuckt so ziemlich jedem in die Suppe also nicht drüber ärgern

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    07.06.2008
    Beiträge
    56
    Der Anschluss ist mit einem Widerstand gegen VCC gelegt (Pullup Widerstand). Die Taster sind an den Anschlüssen C1-C4. Ich werde nachher probieren das Interface abzuschalten. Erstmal Danke

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    07.06.2008
    Beiträge
    56
    Das Interface ist abgeschaltet und die Eingänge funktionieren. Ich möchte den Quarz mit 16Mhz einschalten. Es gibt allerdings sehr viele Einstellungen. Kann mir Jemand sagen welche ich von den auswählen muss? Achso in Bascom konnte ich das Interface nicht abschalten. Aber über das Programm vom MK2(myAVR Workpad) war es problemlos möglich. Also ich möchte über Workpad den Quarz einschalten, weiß aber nicht welche Einstellung die richtige ist. Im Anhang ist ein Bild mit den möglichen Einstellungen
    Klicke auf die Grafik für eine größere Ansicht

Name:	Quarz.jpg
Hits:	8
Größe:	100,6 KB
ID:	20733

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Wieso konntest du das im Bascom nicht abschalten?
    Und Ext. Crystal/Resonator High Freq. ist richtig. Start-Up Time ist nicht so wichtig. Das stellt nur ein wie lange der Controller wartet bis sich das Quarz eingeschwungen hat. Ich hab das höchste genommen
    Merk dir aber was du angekreuzt hast damit, falls es nicht funktionieren sollte(!), du weißt welchen Takt du in etwa anlegen musst.
    Ich hab z.B. als Programmer den All AVR Programmer der hat eine eigene Taktquelle falls man den Takt falsch gesetzt hat.

Ähnliche Themen

  1. TWI Taster Abfrage am Master und Ausgabe am Slave
    Von Pinie im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 11.03.2011, 12:22
  2. Problem mit LCD-Display beim ATMega 16
    Von zappel76 im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 08.09.2010, 15:11
  3. Taster - Abfrage in C
    Von Boozer99 im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 20.01.2009, 10:18
  4. Taster Abfrage und Relais ansteuern?
    Von Misterbrot im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 16.08.2007, 16:55
  5. Problem bei Taster Abfrage mit ADC
    Von MartinNRW86 im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 20.09.2006, 15:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus