-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Atmega8 und Taster

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647

    Atmega8 und Taster

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,

    ich habe ein Problem ich bekomme es nicht hin, das mein Controller auf meinen Taster reagiert.

    Ich habe den Taster von PB6(XTAL1) auf GND gelegt. Als Programm habe ich:

    Code:
    $regfile = "m8def.dat"
    $baud = 19200
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 4000000
    
    Config Portb.6 = Input
    Config Portb.1 = Output
    
    
    Do
    If Portb.6 = 1 Then
    Portb.1 = 1
    Waitms 600
    Portb.1 = 0
    Waitms 600
    Else
    Portb.1 = 1
    Waitms 100
    Portb.1 = 0
    Waitms 100
    End If
    Loop
    
    End
    Die Led die an Portb.1 höngt blinkt schnell. Also scheint der Portb.6 ja auf Low zu stehen.
    Habt ihr evtl ne Idee warum ich keine Reaktion auf einen Tastendruck bekomme?

    Danke
    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    08.12.2008
    Ort
    Germering
    Beiträge
    37
    Hallo Daniel,
    nach mühsamer Kleinarbeit ist es mir gelungen das Programm so hinzubiegen, daß es auf meinem Testboard tut was es soll.
    Viel Erfolg
    Olaf
    Code:
    $regfile = "m32def.dat"
    '$baud = 19200
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    
    Config Pinc.6 = Input
    Config Pinc.1 = Output
    
    Led1 Alias Portc.1                                          ' use 'port' if You're writing
    S1 Alias Pinc.6                                             ' use 'pin' if You're reading
    
    
    
    Do
    If S1 = 1 Then
    Led1 = 1
    Waitms 600
    Led1 = 0
    Waitms 600
    Else
    Led1 = 1
    Waitms 100
    Led1 = 0
    Waitms 100
    End If
    Loop
    
    End

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.10.2008
    Beiträge
    234
    Wieso nach mühsamer Kleinarbeit?!
    Der einzige Fehler liegt darin das er in der Input Definition und an den andren Stellen PORTB.6 statt PINB.6 genutzt hat.

    LG Fabian

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Hi,

    Danke an euch beide das war mein Fehler.

    Habt mir echt klasse geholfen!

    MFG
    Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.10.2008
    Beiträge
    234
    Kein Problem
    Den Fehler hab ich anfangs auch immer gemacht, deshalb ist's mir gleich aufgefallen.
    Was Vistauser mit mühsamer Kleinarbeit meinte würde mich trotzdem interessieren.

    LF Fabian

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.12.2008
    Ort
    Germering
    Beiträge
    37
    Hi murdocg,
    kann ich dir erklären:
    kann nicht programmieren und probiere und probiere und probiere
    und wenns dann endlich hinhaut könnte ich vor Freude in die Luft
    hupfen.
    War doch ein prima Beispiel für mein neues Atmel Evaluations-
    und Addon-Board. Es gibt eben Leute, die sich sowas mühsam erarbeiten müssen aber einen Mordsspass damit haben.
    Servus
    vistauser

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.10.2008
    Beiträge
    234
    Achso nadann ist das ja was andres Als Anfänger ist das Thema Fehlersuche wirklich schwer.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Hi,

    also ich kann ein bisschen Programmieren, aber der Fehler war ja ehr spezifisch auf Mikrocontroller bzw. Bascom.
    Ich frage lieber wenn ich nicht mehr weiter weiß. Besonders in diesem fall glaube ich hätte ich den fehler nie gefunden^^

    Nochmals Danke
    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Hi,

    jetzt habe ich das nächste Problem^^

    Ich möchte mit einem Taster bei einem kurzen druck Aktion A ausführen und wenn der Taster 2sek. lang gedrückt wird möchte ich Aktion B ausführen.

    Wie könnte man das realisieren? Ich habe schon mit If schleifen und waitms was versucht, aber das führt mich nicht zum Ziel.

    Danke
    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo Daniel,

    hab hier mal kurz einen Code geschrieben, allerdings mit meinen "Einstellungen". Musst du nur auf dich anpassen, also µC, Crystal, usw.

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Config Pinb.0 = Input
    Portb.0 = 1
    T1 Alias Pinb.0
    
    Dim A As Byte
    
    
    Do
    
    
    If T1 = 0 Then
    While T1 = 0
    Waitms 10
    Incr A
    If A = 255 Then A = 200
    Wend
    If A >= 200 Then
    'Aktion bei 2 Sek.
    Else
    'Aktion bei kurzem Tastendruck
    End If
    End If
    
    
    Loop
    
    End
    Gruß
    Chris

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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