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

Thema: C-Code für Windmesser

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    27.08.2012
    Beiträge
    8
    Moin zusammen,

    ich habe mir nun ein paar Gedanken gemacht und mich ein wenig eingelesen: Das Software-Entrprellen (scheint) ja am sinnvollsten zu sein, wenn man es über Timer realisiert, um unnötige Warteschleifen zu verhindern und das Programm kurze Zeit zu "blocken".
    Jedoch habe ich bereits 2 Timer in Verwendung: Sprich, wenn ich nun so programmieren würde, dass der Reed-Kontakt einen externen Interrupt auslöst, würde meine Int-Routine ausgeführt.
    Angenommen, ich würde dann eine Variable hochzählen. Meinetwegen bis 5 Zeiteinheiten. Wenn diese 5 Zeiteinheiten erreicht sind, soll nochmal geschaut werden, ob das Signal (in meinem Fall) immer noch "high" ist. Wenn das der Fall ist, soll die Geschwindigkeit errechnet werden.
    ABER: Um diese Zeiteinheiten hochzuzählen, würde die Software aus der Int-Routine rausgehen, um zum Beispiel die Timer0-Overflow-Routine aufrufen, um die Variable hochzuzählen. Wenn dies erledigt ist, springt er wieder in die Int-Routine vom Reed-Kontakt zurück. Oder wird dieser Zähler hardwaremäßig hochgezählt, ohne dass die Int-Routine dafür verlassen werden muss?

    ISR(INT0_vect){
    volatile unsigned long int us = 0;
    volatile unsigned long int millisekunde = 0;

    //Entprellzeit
    _delay_ms(10);

    //Interrupt an INT0 -> PD2
    //alter Wert 32
    us = (volatile unsigned long int) TCNT1 * 32;
    TCNT1 = 0;

    millisekunde = us / 1000;

    // v = s/t
    // Durchmesser Schale Mitte = 92mm
    //Umfang = 92mm * pi = 2890mm
    //laut Datenblatt Windweg = 0,4m
    //Wert 1445

    wind = 2890 / millisekunde; //*10 für Kommastelle
    GIFR |= (1 << INTF0);
    }
    Eine einfache Wartezeit von nun beispielsweise 10ms wäre doch auch eine Entprellung? 10ms sind aber sehr wahrscheinlich zu hoch gegriffen...

    Ich habe gerad irgendwie einen "Knoten im Kopf"...
    Hoffentlich ist das nun auch rübergekommen, wo gerad mein Problem ist.

    Gruß
    Geändert von daniel031287 (03.04.2014 um 16:28 Uhr)

Ä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
  •  

fchao-Sinus-Wechselrichter AliExpress