- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 14

Thema: C-Code für Windmesser

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,

    Man kann eine ISR aufsetzen, welche z.B. alle 1ms den Eingang abfrägt.

    Der aktuelle Wert wird dann in ein Schieberegister eingeschoben.

    Wenn man 8 Bit verwendet (8ms) und das Schieberegister den Wert 0xFF hat, stand am Eingang für mindestens 8ms eine 1 an.

    Bei 0xFF wird dann der Impuls ausgewertet und ein Flag gesetzt. Ist das Flag schon gesetzt wird nicht ausgewertet.
    Das Flag setzt man bei != 0xFF zurück.


    Bei Tasten habe ich meistens einfach nur alle 20ms den Eingang abgefragt und dann nur den aktuellen mit dem vorigen Zustand verglichen.
    Wenn man die Tasten dann noch in ein Bit-Array packt, kann man alle Tasten gleichzeitig entprellen.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    27.08.2012
    Beiträge
    8
    Sooo, ich habe nun mal eine Funktion key_scan programmiert. Diese wertet jede Millisekunde die Taste aus und zählt dabei eine Variable count um einen hoch. Wenn die Variable bei 8 ist, also für 8ms die Taste bzw. der Reedkontakt "1" war, wird request = 1 und in der ISR dann die Bedingung für die Auswertung wahr.

    Kann sich das einer von euch bitte mal anschauen, ob das so überhaupt logisch erscheint? Ich verwende nun 3 Timer und 4 Interrupts... es stellt sich da auch gerade für mich die Frage, welche Variablen da als volatile deklariert werden sollten.
    Ich hoffe, dass ich da keinen mit auf die Nerven gehe, aber da mir die Programmier-Routine fehlt, kommt da die ein oder andere vllt. "dumme" Frage auf...

    PS: Eigentlich kann ich den Tastenport doch gar nicht so abfragen, da mein Reedkontakt auch mal bei keinem Wind so stehen bleiben kann, dass permament High-Signal anliegt und damit die Bedingung wahr wird, obwohl eigentlich gar kein Wind anliegt...?

    Vielen Dank und Gruß
    Daniel
    Angehängte Dateien Angehängte Dateien
    Geändert von daniel031287 (04.04.2014 um 18:43 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    27.08.2012
    Beiträge
    8
    Hallo zusammen,

    ich habe das Problem lösen können... ich habe einfach den externen Interrupt deaktiviert, sobald er einmal aufgerufen worden ist. Nach 3ms anschließend wieder aktiviert...

    Frohe Ostern,

    Gruß
    Daniel

Ähnliche Themen

  1. Code+Schaltpläne für einige I²C/SPI ADCs, DACs, LED-Treiber, ... für AVR, ARM, AVR32
    Von kruemeltee im Forum Eigene fertige Schaltungen und Bauanleitungen
    Antworten: 0
    Letzter Beitrag: 22.08.2011, 19:34
  2. Code-Schloss mit Tastatur, LCD und Logger. Code-Beispiel
    Von Stray_Cat im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 05.06.2009, 10:31
  3. Mal wieder die Windmesser ;-)
    Von Björn im Forum Elektronik
    Antworten: 102
    Letzter Beitrag: 31.12.2005, 13:40
  4. Code für Interrupt?
    Von Felixx87 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 22.09.2005, 16:41
  5. Suche C-Code für Matrixtastaturabfrage für PIC µC
    Von the_Ghost666 im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 25.02.2005, 18:25

Berechtigungen

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

LiFePO4 Speicher Test