- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Bascom Config-Servo -Reload verändert Timer?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Ort
    Aachen
    Beiträge
    19

    Bascom Config-Servo -Reload verändert Timer?

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    ich bin neu in der Welt der Mikroprozessoren und versuche mich an der Programmierung mit Hilfe von Bascom. Hat soweit auch alles wunderbar funktioniert, jedoch fällt mir eine Sache negativ auf und würde gerne einmal wissen ob dies ein "Problem" oder normal ist:

    Ich habe ein kleines Programm geschrieben, dass jede Sekunde einen Pin von high auf low und umgekehrt schaltet. Durch Mitzählen würde ich sagen dass es auch wirklich eine Sekunde ist.

    Wenn ich jetzt jedoch durch den "Config Servos" Befehl ein Servo konfiguriere ändert sich diese "Sekunde" je nach reload-Wert.

    Da ich recht neu auf dem Gebiet bin kann ich mir das nicht wirklich erklären.
    Bascom wird ja einen Timer benutzen, um das PWM Signal zu erzeugen, aber kann/darf sich das auf den waitms befehl auswirken?

    Falls es wichtig ist: ich benutze einen 16MHZ Quarz als Taktgeber.

    besten Dank schonmal,
    Stephan

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    es kann sich schon auf den Wait-Befehl auswirken, denn der Wait-Befehl ergibt in Bascom nix anderes als eine Schleife, die bis zu einem bestimmten Wert zählt.
    Wenn jetzt ein Servo angesteuert wird, wird dieses Steuern in einer ISR (Timer-Interrupt) erledigt, und in dieser Zeit kann der Wait-Befehl nicht zählen. Das dürfte zwar nicht viel ausmachen, aber man merkt es.
    Wie schon erkannt wird ein Timer für das Timing des Servos benutzt.
    Je mehr Servos man hat umso langsamer wird der Rest.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.06.2006
    Ort
    Schriesheim
    Alter
    37
    Beiträge
    478
    wie lang ist denn die sekunde danach

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Ort
    Aachen
    Beiträge
    19
    1,4 Sekunden, also schon merklich.

    Auch wenn ich das Servo garnicht per Befehl bewege, alleine durch

    Config Servos = 1 , Servo1 = Portc.1 , Reload = 10


    Kann nicht normal sein, oder?

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.06.2006
    Ort
    Schriesheim
    Alter
    37
    Beiträge
    478
    zeig mal deine schleife, bzw wie oft updatest du denn die Servo-Position im Code ?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Wenn ein Servo Configuriert ist, ist es egal an welcher Position der ist oder gestellt wird, das dauert immer gleich lang. Denn die Routine läuft immer gleich im Hintergrund. Es ändert sich nur die Zeit, wenn es mehr Servos werden.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Ort
    Aachen
    Beiträge
    19
    hallo zusammen, hier mal der Code:

    hier ist eine Sekunde ach eine Sekunde:
    Code:
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    
    
    'Servo Config
    'Config Servos = 1 , Servo1 = Portc.1 , Reload = 15
    Config Portc = Output
    'Servo Config
    
    Enable Interrupts
    
    Portc.2 = 0
    
    Do
    Toggle Portc.2
    Waitms 1000
    Loop
    
    
    End
    und hier der Code wo in 60 Sekunden die LED nur 42 mal blinkt --> eine Sekunde sind 1,4 Sekunden:
    Code:
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    
    
    'Servo Config
    Config Servos = 1 , Servo1 = Portc.1 , Reload = 15
    Config Portc = Output
    'Servo Config
    
    Enable Interrupts
    
    Portc.2 = 0
    
    Do
    Toggle Portc.2
    Waitms 1000
    Loop
    
    
    End

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Du solltest bei der Servoconfig keinen so grossen Reload-Wert angeben, sonst kann es sein das der Servo stottert und ruckelt, der Wert sollte max. 10 sein, und wenns mehr Servos werden noch kleiner !

    Wenn Du genaue Blink- oder Wartezeiten brauchst, musst Du das auch mit einem Timer machen, und nicht mit Wait. Denn Wait zählt nur vor sich hin, und, wie oben schon gesagt, lässt sich gern unterbrechen dabei, und deshalb wirds ungenau !

Berechtigungen

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

LiFePO4 Speicher Test