-         

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

Thema: Taster an AtMega8.. steh grad auf m Schlauch.. :/

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127

    Taster an AtMega8.. steh grad auf m Schlauch.. :/

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo...
    hab folgendes Problem...
    will nen ganz normalen Taster an nen Atmega8 anschliessen, aber der will nicht so wie ich.

    Der Taster verbindet den Port mit GND und ist mit 100R gepullupt..

    der code ist folgendermassen:
    Code:
     $regfile = "m8def.dat"
     $crystal = 8000000
    
     Config Pinb.2 = Output
     Beleucht Alias Portb.2
     Config Pind.0 = Input
     Taster_plus Alias Portd.0
     Portd.0 = 1
    
     Do
    
     If Taster_plus = 1 Then
       Beleucht = 1
     Else
       Beleucht = 0
     End If
    
     Loop
    Wenn ich den Taster drücke passiert rein gar nichts.. Beleuchtung bleibt immer auf 1 also an.
    wo is der Fehler ??
    meine projekte: robotik.dyyyh

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    ...den Eingang musste über PIND.0 abfragen!

    (Also Taster_plus Alias PIND.0)

    Gruß & Co!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    Danke...

    den Fehler mach ich irgdnwie immer... wozu gibt es überhaupt die unterscheidung ??
    meine projekte: robotik.dyyyh

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    100R als Pullup? ist das nicht ein bisschen wenig? da fliessen ja 50mA wenn der Taster gedrückt ist....

    gruss Bluesmash

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    wozu gibt es überhaupt die unterscheidung ??
    Ganz einfach: Weil PORTX.Y den PullUp-Widerstand aktiviert, wenn der Anschluss als Eingang konfiguriert ist. Von daher wäre der (in der Tat etwas rustikal gewählte) externe Widerstand überflüssig, weil Du das mit PORTD.0=1 schon erledigt hast.

    MfG,

    Daniel

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    GEnau wie Sauerbruch sagt, gibt es im Falle von Inputs 2 Nutzungen der Register.
    Wenn man auf Output stellt, gibt es nur an/aus, aber wenn man auf input stellt gibt es an/aus (von außen), und es gibt pullUp-an/aus, so dass Atmel das Port-Register in diesem Fall doppelt nutzt. Clever, wie ich finde.

    Edit: Es heißt natürlich input...

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    @ wulf .. danke für die erklärung, dann versteh ich das jetzt auch mal, konnt mir das bis jetzt nie merken...
    meine projekte: robotik.dyyyh

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    ...wobei mit dem 2. "output" eigentlich "Input" gemeint sein dürfte. Das nur am Rande, um nicht neue Verwirrung zu stiften

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Zitat Zitat von Sauerbruch
    ...wobei mit dem 2. "output" eigentlich "Input" gemeint sein dürfte. Das nur am Rande, um nicht neue Verwirrung zu stiften
    Danke, ich habs mal korrigiert.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    ok, dann noch eine Frage.. wenn ich will dass man den Taster z.b. 5 sekunden Drücken muss um eine Funktion auszulösen, wie kann ich das dann machen?
    geht das so:

    Code:
     $regfile = "m8def.dat"
     $crystal = 8000000
     '-----Timer-----
     Config Timer0 = Timer , Prescale = 256                 
     Enable Timer0                                            
     On Timer1 blablubb                            
     Enable Interrupts
     Timer0 = 0               
    do 
    ....
    if taster = 1 then
         timer0 = 0
    end if
    ....
    loop        
    
    blablubb:
    if taster = 1 then
    ...'funktion ausführen
    end if
    return
    oder wie würdet ihr das lösen.

    @ thewulf.. du hast nen Pinguin als avatar und kennst dich mit Bascom aus...
    Hast du das unter wine laufen ??
    meine projekte: robotik.dyyyh

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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