- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Taster funktionieren nicht. Keine reaktion

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.10.2012
    Beiträge
    12

    Taster funktionieren nicht. Keine reaktion

    Anzeige

    Powerstation Test
    Hallo liebe RN-Community,

    da ich neu bin, schriebe ich erst mal ein paar Infos über mich und mein Projekt:

    Ich habe mir gestern einen ATMega 32 und einiges an Zubehör gekauft, da ich mit einem Kollegen momentan dabei bin, einen Rasenmähroboter zu entwickeln.
    Wir hatten schon ein fast funktionsfähiges Gefährt, bis es uns den Controller geschossen hat. Es handelte sich um einen C-Controll Mega 128 von Conrad. Wir haben uns überlegt ob wir nochmal 25€ investieren und uns mit dem Conradzeug rumschlagen oder nochmal von 0 zu beginnen, dafür aber mit einer günstigen ordentlichen Hardware. Aus diesem Grund sind wir nun dabei, uns mit einem AVR ATMega 32 und Bascom zu befassen.

    Nun zu meinem Problem:


    Ich habe gestern fleißig gebastelt und programmiert und habe auch eine LED über einen Taster ansteuern können. Doch aus welchen Gründen auch immer, funktioniert das heute nicht mehr. Es ist bis auf die Software alles wie gestern. Habe den Taster auch an unterschiedliche Ports gehängt und prograsmmiert, aber es geht nicht. Der Taster hängt zwischen dem PORT und GND. Der interne Pu-Up ist auch aktiviert.
    Vielleicht habe ich einen kleinen Fehler im Programm, den ich momentan nicht sehe.

    Über eure Hilfe wüde ich mich sehr freuen.

    Gruß
    ATFlo32

    Hier die Software:
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    $prog &HFF , &HFF , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
    
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Pinc.7 = Input
    Portc.7 = 1
    
    Do
    If Pinc.7 = 0 Then
    Portc.0 = 1
    Waitms 5
    Portc.0 = 0
    Waitms 100
    Else
    Portc.1 = 0
    End If
    
    Loop
    
    
    End

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Spannung über Batterie? Die möglicherweise leer... weil angelassen oder so?
    Vergößer bitte testweise das Waitms 5 auf etwa 500.
    Baue ggf eine extra LED an einen freien Port, die dir den generellen Betrieb des µC anzeigt. Die schaltest Du vor der Do loop Schleife einfach zur kontrolle an. LED mit Vorwiderstand etwa 470 Ohm?
    16 MHz Quarz ist dran? ...mit 2x 22pF? Und auch im µC eingestellt?

    "$prog &HFF , &HFF , &HD9 , &H00 " <- das kenne ich nicht, aber die warnung sollte man ernst nehmen.
    Vielleicht mal auskommentieren ( ' )
    Geändert von HeXPloreR (16.10.2012 um 18:30 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.10.2012
    Beiträge
    12
    Hallo,

    danke erst mal für die schnelle Antwort.

    Die Spannungsversorgung geht über akkus. Die Spannung beträgt aber 4,8V. Also daran sollte es nicht liegen. Die Zeit habe ich verlängert und eine dritte LED angeschlossen und auch im Programm hinzugefügt:
    Config Portc.2 = Output
    Portc.2 = 0
    Diese leuchtet aber nicht!? Egal ob Portc.2 = 1 oder 0...

    Der 16 Mhz Quarz ist mit den 22pF Kondensatoren angeschlossen und es ist alels eingestellt. Das $prog &HFF , ..... ist ein Befehl von Bascom, mit denen er die Fusebits schreibt und ändert. Habe ich vergessen zu löschen.

    Wenn ich die LED nur blinken lassen möchte, funktiniert dies ohne probleme. Aber mit dem Taster geht es nicht...

    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    '$prog &HFF , &HFF , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
    
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Portc.2 = Output
    Config Pinc.7 = Input
    Portc.7 = 1
    
    Portc.2 = 0
    
    Do
    If Pinc.7 = 0 Then
    Portc.0 = 1
    Waitms 500
    Portc.0 = 0
    Waitms 100
    Else
    Portc.1 = 0
    End If
    Loop
    
    
    End
    Geändert von ATFlo32 (16.10.2012 um 18:39 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Richtig rum angeschlossen? PortC.2 = 1 sollte es heißen wenn es die Kontroll LED sein soll die angeht, sobald der µC an der stelle vorbei eiert Der PortD hat damit wenig zu tun.
    Irgendwie habe ich vorher nur was von einer LED gelesen, was soll die denn machen? Möglich das Deine else Anweisung nicht komplett ist? Weil da geht keine LED an.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.10.2012
    Beiträge
    12
    Also, habe nun herausgefunden warum die Kontroll-LED nicht leuchtet, sie ist kaputt
    Jetzt leuchtet sie sogar

    Also, momentan sind drei LEDs angeschlossen. Die eine an Port C.0 ist über ein Mosfet (die Ansteuerung funktioniert; kann diese LED blinken lassen), Port C.1 ist eine zweite LED und an Port C.3 ist die Kontroll-LED, welche ich auf deinen Rat eingebaut habe.
    Nun soll die LED am Mosfet angehen, wenn ich den Taster drücke und die LED 2 ausgehen.

    Aber der Taster macht eben nix.

    Habe die Elseanweisung mal so geändert, dass er einfach nur die LED 2 ein, bzw ausschaltet. Es tut sich aber nix:
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    '$prog &HFF , &HFF , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
    
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Portc.2 = Output
    Config Pinc.7 = Input
    Portc.7 = 1
    
    Portc.2 = 0
    
    Do
    If Pinc.7 = 0 Then
    Set Portc.1
    Else
    Reset  PORTC.1
    End If
    Loop
    
    
    End
    EDIT:
    Am Taster und den Zuleitungen kann es übrigens auch nicht liegen, die haben alle durchgang. Kann den Port auch direkt auf Masse legen, aber es passiert nichts

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Eine LED kann aber auch erst ausgehen wenn sie mal an ist -wo schalteste Du Deine zweite LED an, damit sie über den taster aus geht?
    Bitte baue keine neu Befehle ein, denn so finden wir hier gemeinsam den Fehler sicherlich noch schwerer.
    Also PortC.2 ist immer noch nicht an - damit leuchtet ertsmal keine Kontroll-LED - damit auch keine Kontolle ob der µC überhaupt mit dem gegenwärtigem Programm läuft.

    LED am Mosfet???

    Taster baue ich auch mal gerne falsch ein...die haben dann immer durchgang bei nicht drücken...
    Geändert von HeXPloreR (16.10.2012 um 19:06 Uhr)

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    16.10.2012
    Beiträge
    12
    Die Änderungen sind nur für mich zum Testen., Ich poste es aber trotzdem mit. Also es geht natürlich noch um das Anfangsporgramm /problem

    Die LED leuchtet. Habe ich weiter oben doch geschrieben. Also geht das Programm schon mal bis zum Anfang der Do Loop schleife.

    EDIT:

    Ja, die LED (handelt sich um eine Power-LED) ist über einen Mosfet am µC. Aber das tut nichts zu sache, die LED geht ja. Nur der Taster nicht.
    Der Taster ist ein einfacher Schließer mit zwei Beinchen, falschrum einbauen geht da nicht
    Geändert von ATFlo32 (16.10.2012 um 19:14 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    wenn noch um das Programm oben geht:dann ändere bitte PortC.0 in 1 in der do loop. dann sollte LED 2 daran blinken. und wenn Du los lasst bleibt wegen else die LED aus

    Sorry, aber ich denke nicht das die Kontroll Led leuchtet, denn du schaltest sie nicht ein. Sie ist = 0 ; also aus
    Geändert von HeXPloreR (16.10.2012 um 19:30 Uhr)

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.10.2012
    Beiträge
    12
    Ich glaubich bringe dich mit den Programmen etwas durcheinander. Sorry dafür.

    Ich denke ich habe verstanden was du meisnt. In meinem Programm sehe ich die Ports wie Taster an. Deshalb habe ich nur je einen Port pro Bedingungsteil. Daher soll ich einen der beiden mal ändern. Verstehe ich das richtig?

    Vielen Dank auch nochmal für deine Hilfe. Hoffe wir finden das problem

    EDIT:
    Also die LED leuchtet nun. Jedoch nur sehr sporadisch. Und blinken tut sie auch nicht.
    Aber immerhin ein kleiner Fortschritt

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    nun bleibt nur noch die möglichkeit das de rtaster am falschen pin hängt liegen denn am taster die 5V vom pullup an? Geht die spannung auf 0V bei Tastendruck?
    was gibt es noch zu sagen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 24.09.2012, 20:45
  2. Antworten: 14
    Letzter Beitrag: 19.07.2012, 18:47
  3. ENC28J60... keine Reaktion der LED´s
    Von Felix H. im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 4
    Letzter Beitrag: 29.04.2010, 20:49
  4. M32 - Keine Reaktion bei Beispielprogramm
    Von V:X im Forum Robby RP6
    Antworten: 9
    Letzter Beitrag: 09.01.2010, 13:46
  5. Taster funktionieren nicht
    Von Proger im Forum Asuro
    Antworten: 15
    Letzter Beitrag: 26.08.2007, 15:07

Berechtigungen

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

Labornetzteil AliExpress