- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Benötige Hilfe beim Capture Mode

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Beiträge
    35

    Benötige Hilfe beim Capture Mode

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich benötige Hilfe beim Capturemode Timer 1 oder 3 des Mega 128.

    Ich möchte eine Drehzahl erfassen, was ich bisher mit Interrupts und Timern gelöst habe. Dies will ich jetzt mit dem Capture Mode realisieren.

    Bei einer Drehzahl von 10 000 U/min und 2 Impulsen pro Umdrehung sind das 0,003 Sekunden pro Umdrehung.

    Ich betreibe den Mega mit 16 Mhz. Bei einem Prescaler von 256 wären das dann 62500 Hz oder 1/f = 0,000016 Sekunden.

    Ich kann also einen Bereich bis 0,000016*65535=1,04856 Sekunden abdecken.

    Wie aber rechne ich jetzt die Drehzahl aus?

    Im Prinzip doch 60/(gemessene Zeit *2)= Drehzahl

    2, da ich ja der Startimpuls kommt, dann nach halber Umdrehung der Stoppimpuls und dann ne halbe Umdrehung Pause ist.

    Bsp.: 60/(0,003*2)=10000 U/min

    Diese Rechnung stimmt ja aber nur, wenn in den Timerregistern die Zeit in Sekunden stehen würde. Wie steht sie aber in meinem Beispiel denn wirklich drin und wie rechne ich das aus????

    Kann mir anhand meiner Angaben jemand ne Beispielrechnung zeigen?????

    Vielen Dank

    Fourstroker

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    Wenn Du alle 16µs eins hoch zählst, dann multiplizierst Du die Anzahl mit 16µs und Du hast das Ergebnis in µs. Du kannst sie auch mit 0,000016 multiplizieren und dann hast Du es in s.
    Nur aufpassen, wenn man mit Zählern rückwärts zählt, dann muss man halt noch kurz umrechnen.
    Viel Spass

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Beiträge
    35
    Soweit ist das schon klar, aber ich kann doch net

    Variable = Variable*0,000016; schreiben.

    Oder??

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    Ne, aber Variable1 = Variable2*0,00..16
    Kommt aber auch darauf an, wie groß Var2 ist und entsprechend das Ergebnis. Muss alles in 16Bit passen, sofern so deklariert.
    Was Basic alles kann, weiß ich nicht so genau, programmiere meist in Assembler. Vielleicht geht ja auch 32Bit.
    Gruß

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.04.2005
    Beiträge
    35
    Ich machs jetzt mal mit ner long Variable und hab von 0,000016 auf 16 erweitert. Mal sehen, obs läuft.

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress