- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Schrittmotor einzelne Steps mit Taster

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hier gibt es auch was über Entprellen:
    http://www.mikrocontroller.net/articles/Entprellung
    Ich arbeite bei solchen Sachen gerne mit Flags.
    Nach der Entprellung Flag Taste gedrückt
    Wenn Flag Taste gedrückt und Impuls nicht ausgegeben in die Funktion Impuls springen und Flag Impuls setzten. Wenn Impuls aus, Flag Impuls aus setzen.
    Wenn Taste losgelassen Flag Taste ist 1 und Flag Impuls ist 0 alle Flags zurücksetzen.
    Wenn man den Flags vernünftige Namen gibt bleibt das ganze übersichtlich und man kann alles gegenseitig verriegeln.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Ja genau, hier liegt das Problem:


    if(PINC&(1<<PINC0))

    Du musst danach warten, bis der Taster wieder losgelassen wird. Ich würde nach dem Switch-Element noch folgende zwei Zeilen programmieren:

    while (PINC&(1<<PINC0))
    _delay_ms (10);

    Damit hast du dann auch gleich deine Entprellung.

    Viele Grüße
    Andreas

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.03.2005
    Ort
    gerne in den Bergen
    Alter
    41
    Beiträge
    429
    Ich habe nicht das ganze Programm angeschaut, aber deine switch-Anweisung wird so nicht funktionieren:

    Code:
    switch (PORTD)                      
    {                      
       case 10101010:                          
          PORTD|=0b01011010;                         
          break;
    ...
    In der switch-Anweisung hast du PORT D, und der ist 8-bit gross. Nachher hinter dem case hast du eine 8-stellige Zahl die für den ersten Fall 10.101Mio bedeuten. Entweder du machst beim case auch ein 0b... davor oder du machst alles direkt in Hex-Werten. Ich meinte mal gelesen zu haben dass C die 0b.... Darstellung nicht unterstützt!
    ...wer nicht findet hat nicht gesucht...

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    ...weil ich es gerade sehe:

    Es muss auch

    Code:
    case 0b10101010:
    heißen!?

    - - - Aktualisiert - - -

    ...und gleich noch ein Fehler:

    [code]

    PORTD = 0b01011010;
    [code]

    ohne das |= das "verodert" dir sonst dein PortD und dann sind alle Bits 1.

  5. #5

Ähnliche Themen

  1. Schrittmotor mit Vorwahlzähler und Schalter (Taster) steuern
    Von juergen6020 im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 0
    Letzter Beitrag: 18.11.2012, 21:05
  2. [ERLEDIGT] Schrittmotor Steuerung mit Drehencoder u. Taster Pollin - bitte mal draufschauen
    Von MrMiffy08 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 15.10.2012, 01:11
  3. Einzelne Schritte mit Schrittmotor
    Von Timotor11 im Forum Motoren
    Antworten: 10
    Letzter Beitrag: 17.09.2009, 18:09
  4. Screens wechseln mit 2 Taster (oder mit einem Taster)
    Von tordy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.07.2009, 14:39
  5. Antworten: 4
    Letzter Beitrag: 26.09.2008, 09:39

Berechtigungen

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

12V Akku bauen