-         

Ergebnis 1 bis 4 von 4

Thema: pulsein

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12

    pulsein

    Anzeige

    Hallo Leute
    Kann mir mal jemand sagen warum der Code nicht funktioniert?


    $regfile = "m8def.dat".dat "
    $crystal = 1000000

    Dim X As Word

    Config Pind.4 = Input
    Config Portd.5 = Output
    Config Portd.6 = Output


    Do
    Pulsein X , Pind , 4 , 0

    If X <= 34000 Then
    Portd.5 = 1
    Elseif X > 34000 And X <= 64000 Then
    Portd.6 = 1

    End If
    Loop

    Ich möchte die Drehzahl eines Motors überwachen.Das Eingangssignal hat zwischen 4 ms und 30 ms.
    Kann mir jemand helfen?

    Gruß
    Horst12

  2. #2
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Zitat Zitat von Horst12 Beitrag anzeigen
    $regfile = "m8def.dat".dat "
    ... is das so beabsichtigt mit dem .dat" zu viel ?

    dazu fehlt doch dann noch der Timer wenn ich nicht irre...

    so in etwa:
    Code:
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
    Aso... fragst du die Flanke bei anstieg, abfall oder generell bei wechsel ab ?
    Musst eben an deine bedürfnisse anpassen.

    Grüsse,... JoeM
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    dazu fehlt doch dann noch der Timer wenn ich nicht irre...
    Da irrst Du Dich - die Bascom-Hilfe sagt ganz zum Befehl Pulsein folgendes:
    "No hardware timer is used. A 16 bit counter is used. It will increase in 10 uS units. But this depends on the XTAL. You can change the library routine to adjust the units."
    Und selbst wenn man einen Timer bräuchte, wären die ganzen PWM-Statements überflüssig.

    Aso... fragst du die Flanke bei anstieg, abfall oder generell bei wechsel ab ?
    Auch das ist korrekt erledigt: Mit der Null in der Zeile "Pulsein X , Pind , 4 , 0" wird definiert, dass eine steigende Flanke ausgewertet wird.

    Mir fallen bislang zwei Fehler in diesem Teil des Codes auf;

    Erstens:
    Code:
    If X <= 34000 Then
    Portd.5 = 1
    Elseif X > 34000 And X <= 64000 Then
    Portd.6 = 1
    Du setzt die Ports D.5 und D.6 nirgendwo auf 0! Oder anders gesagt: Ist X kleiner als 34000, geht Portd.5 auf 1 - aber wenn X dann irgendwann einmal größere Werte als 34000 annimmt, bleibt Portd.5 weiterhin 1! (Gleiches gilt für Portd.6).

    Eine Lösung wäre z.B.

    Code:
    If X <= 34000 Then Portd.5 = 1 Else Portd.5 = 0
    If X > 34000 AND X <= 64000 Then Portd.6 = 1 Else Portd.6 = 0
    Und zweitens:
    Die Bascom-Hilfe schreibt, dass der Pulsein-Befehl im Normalfall (d.h. wenn Du nichts an der Lib verändert hast, wovon ich mal ausgehe) den Impuls in 10µS-Schritten ausmisst. Bei 4ms Impulsdauer müsste Pulsein also einen Wert von 400 liefern, und bei 30 ms etwa 3000. Das heißt, Du bist mit Deinen Grenzwerten von 34000 um etwa eine Zehnerpotenz daneben.

    Kannst Du Dir die realen Werte von X denn mal anzeigen lassen, mit einem LCD oder so?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12
    Hallo

    Jetzt wo ich deine Antwort lese ist das klar. Hätte ich auch selber drauf kommen.Ich werde es gleich ausprobieren.

    Danke im voraus
    Horst12

Ähnliche Themen

  1. [ERLEDIGT] Verständnissfrage zu PulseIn
    Von JoeM1978 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 12.01.2013, 21:49
  2. Pulsein Timer?
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 23.05.2010, 13:27
  3. Genauigkeit Pulsein/Pulseout
    Von ikarus_177 im Forum AVR Hardwarethemen
    Antworten: 19
    Letzter Beitrag: 11.07.2008, 12:22
  4. Watchdog und Pulsein
    Von UweMD im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 17.06.2006, 08:53
  5. Funktion PULSEIN
    Von Dirk im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 10.05.2006, 15:19

Berechtigungen

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