-
        

Ergebnis 1 bis 10 von 10

Thema: PWM ist unterschiedlich

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.12.2008
    Ort
    königslutter
    Alter
    27
    Beiträge
    42

    PWM ist unterschiedlich

    Anzeige

    Hi,

    ich habe 3 verschiedene Platinen für Atmega8 CPUs ...

    1. 12 MHz
    2. 4 MHz
    3. 8Mhz

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 12000000
    '$crystal = 8000000
    '$crystal = 4000000
    
    Config PortB = Output
    
    
    Config Servos = 2 , Servo1 = Portb.1, Servo2 = Portb.2 , Reload = 10
    
    Enable Interrupts
    
    
    do
    
        Servo(1) = 70
        Servo(1) = 70
        Print "step 1"
        wait 1
    
        Servo(1) = 70
        Servo(1) = 70
        Print "step 2"
        wait 1
    
    loop
    Ich verwende immer den gleichen Prozessor.
    Die Ausgabe auf dem SerialPort ist OK.

    Aber wie PWM Signale sind auf allen Board unterschiedlich!

    Hat jemand eine Idee?


    Gruß,
    Sascha

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    46
    Beiträge
    362
    Zitat Zitat von !*sascha*! Beitrag anzeigen
    Hi,

    ich habe 3 verschiedene Platinen für Atmega8 CPUs ...

    1. 12 MHz
    2. 4 MHz
    3. 8Mhz

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 12000000
    '$crystal = 8000000
    '$crystal = 4000000
    Ich verwende immer den gleichen Prozessor.
    Die Ausgabe auf dem SerialPort ist OK.

    Aber wie PWM Signale sind auf allen Board unterschiedlich!

    Hat jemand eine Idee?
    Eigentlich schon. Die PWM-Frequenz wird ja von der Systemfrequenz sprich dem Quarz abgeleitet. Deshalb muß die PWM bei jedem anderen Quarz auch eine andere Frequenz haben.
    Wundere mich nur das die RS232 funktioniert, oder nutzt Du sie nur zum Flashen ?
    Habe wenig Ahnung von Basic, kenn ich nur vom alten Commodore C64.

    Bernd_Stein

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Das die RS232 Kommunikation funktioniert ist klar. An der Systemfrequenz erkennt Bascom wie er die RS232 Timen muss damit alles passt.

    Das gleiche hätte ich jetzt eigentlich auch für den Servo Befehl erwartet!?

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    46
    Beiträge
    362
    Zitat Zitat von DanielSan Beitrag anzeigen
    Das die RS232 Kommunikation funktioniert ist klar. An der Systemfrequenz erkennt Bascom wie er die RS232 Timen muss damit alles passt.

    Das gleiche hätte ich jetzt eigentlich auch für den Servo Befehl erwartet!?

    Gruß Daniel
    Habe keine Ahnung von BASCOM. Klinke mich damit aus.

    Bernd_Stein

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Mir ist gerade noch eine Idee gekommen.

    Hast du die Prozessoren denn auch passend gefused? Denn wenn der Systemtakt von Bascom nicht dem Systemtakt, den du mit den Fuses einstellst, entspricht kommt es zu falschen Timings.

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Na ja, die PWM Frequenz ist ja ein Teil der Quarzfrequenz z.B. 1/8 oder was halt eingestellt ist.
    12 Mhz/8 oder 8 Mhz/8 oder 4 Mhz/8 da muss einfach immer etwas anderes heraus kommen.

    Anders allerdings das Puls Pausen Verhältnis, das sollte immer zwischen 0 und 100% einstellbar sein. Nur die Widerholrate ändert sich natürlich.

    Gruß Richard

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Dann müsstest du es ungefähr so machen:
    1. Timer configurieren! Damit du nachher den Prescaler anpassen kannst.
    Code:
    CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024
    2. Dem Servobefehl einen Timer zuweisen:
    Code:
    Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 10 , Timer = Timer0
    So solltest du die abweichungen anpassen können. Natürlich ist das so keine fertige Lösung, ein bisschen musst du da noch selbst dran arbeiten.

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    28.12.2008
    Ort
    königslutter
    Alter
    27
    Beiträge
    42
    Hi *,

    ah Antworten Ich bin grade erst von der Arbeit gekommen.

    Es war auch meine Erwartung, dass Bascom es an die eingestellte Quarzfrequenz anpasst!

    Die RS232 Ausgabe habe ich für diesen Zweck eingebaut!
    Da die Ausgabe funktioniert, dachte ich die Quarzfrequenz passt und damit auch die Fuse Bits richtig sind.

    An die Fuse BITs habe ich auch schon gedacht.

    Ich muss mal gucken, ob die richtig eingestelt sind.
    Ich habe den Programmer von Ulrich Radig und muss die .hex und Fuse via "AVR Burn-O-Mat" in den AVR brennen.

    Bin mir immer nicht sicher, ob die Fuse 100% passen!

    Werde mal nach der Fuse Konfiguration googeln!

    Danke schonmal für die Antworten....

    Gruß,
    Sascha

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Zitat Zitat von !*sascha*! Beitrag anzeigen
    Ich habe den Programmer von Ulrich Radig
    Den habe ich auch. Läuft unter Bascom direkt als USBASP.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Den habe ich auch. Läuft unter Bascom direkt als USBASP.
    Ich auch! Aber bei mir klappt es nicht mit USBASP. Kannst du mir da mal per PN sagen wie du das gemacht hast?
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 10.02.2011, 23:30
  2. LCDs - unterschiedlich schnell bzw. "schlieren"
    Von VictimOfMyOwn im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 24.05.2006, 21:28
  3. Led's leuchten unterschiedlich stark.
    Von .Johannes. im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 11.04.2006, 17:42
  4. Antworten: 2
    Letzter Beitrag: 09.01.2006, 11:17
  5. L297 und L298 Ströme unterschiedlich
    Von Logh im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 05.09.2005, 19:07

Berechtigungen

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