-         

Ergebnis 1 bis 8 von 8

Thema: PWM mit m328p

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    34
    Beiträge
    147

    PWM mit m328p

    Anzeige

    Hallo,
    ich habe folgendes Problem.
    Ich benötige eine Steuerbaren Analogausgang (0-5V), dazu will ich einen mC nutzen.
    Habe mir überlegt einfach eine PWM zu erzeugen so das ich über das High/Low Verhältnis den Mittelwert verändern kann.

    Jetzt stellt sich mir nur die Frage wie ich das Softwareseitig umsetzen kann ?
    Ich brauche ein Programm dem ich über eine feste Periodendauer das Verhältnis zwischen Ein und aus vorgeben kann.

    Das ganze einfach in der Hauptschleife laufen lassen und mit "wait" Zeiten Arbeiten hat war leider viel zu ungenau und mit Interrupts kenn ich mich leider zu wenig aus.

    Hat jemand einen Lösungsansatz für mich?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    mach das ganze über die timer da kannst du hardwaretechnisch eine pwm erzeugen.

    wenn du es ganz auf die spitze treiben willst könntest du das nach dem glätten nochmal mit dem AD-Wandler einlesen und regeln.
    Der miniatur Quadrocopter: www.nanoquad.de

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    34
    Beiträge
    147
    Ne, geregelt muss es nicht sein.
    Ich muss doch im Grunde zwei Timmer haben, und bei sagen wir einmal einer Periodendauer von 10ms
    Je nach gewünschter Spannung:
    t1 = 10*(1-x) t2 = 10*x
    Wenn ich x jetzt zwischen 0 und 1 verändere kann ich prozentual die Spannung einstellen.
    x = 0 0V
    x = 0.5 2.5V
    x = 1 5V
    Aber ich muss ja irgendwie gewährleisten, dass neben der Modulation auch noch weiterhin der Sollwert eingelesen wird ohne, dass es zu Verzögerungen kommt!?

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    lese mal im datenblatt was dort zu den timern steht.

    der m328p generiert mit einem timer ein PWM signal und das von selbst. du musst nur, bei einem 8bit timer, einen wert von 0 - 255 vorgeben.

    daneben hast du noch alle zeit der welt was anderes zu machen
    Der miniatur Quadrocopter: www.nanoquad.de

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Ich würd es auch über die Timer und Hardware PWM machen.
    Dazu ist noch nicht mal ein Interrupt nötig, weil die PWM Generierung rein in Hardware läuft.
    Bei den 8 Bit Timern hast du ne 8 Bit PWM ( 256 Stufen ) mit dem 16Bit Timer ( Timer 1 ) gibts 65536 Stufen und 2 PWM Ausgänge OCR1A, OCR1B.
    Einzig die PWM Frequenz ist nicht stufenlos wählbar, sondern abhängig von der Taktfrequenz des Controllers, dem Prescaler und der Eingestellten Auflösung. Denn die PWM des Timer1 kann man mit verschiedenen Auflösungen laufen lassen.

    Was noch zu beachten wäre ist, das der Controller keine großen Lasten treiben sollte. LED's oder Siebensegmentanzeigen direkt vom Controller zu speisen ist keine gute Idee, wenn man die PWM's benutzen will. Man kriegt dann die Ausgangsspannung nicht mehr auf 0V runter.
    Sollen solche Lasten betrieben werden müssen den Controllerports Treiber nachgeschaltet werden.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    34
    Beiträge
    147
    Ich habe die folgende Funktion gefunden:
    PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.
    Jedoch kann ich diese Funktion nur nutzen wenn ich auch den Andruino-Programmer verwende oder sehe ich das falsch ?
    Habe nur noch nie mir mit diesem gearbeitet, gibt es große Unterschiede ?

    Hat jemand eine Programmbeispiel ? Eventuell sogar für Bascom ?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Ich bin nun gerade kein Bascom Jünger, aber so weit ich weiß sind die PWM Funktionen in config timer... mit drin.

    Würd die Frage mal in der Bascom Abteilung stellen, oder nach passenden Threats suchen oder u.U die Bascom Hilfe verwenden.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    34
    Beiträge
    147
    Also ich habe jetzt das Tool von Arduino benutzt und es mit der analogWrite() - Funktion gelöst.
    Funktioniert super

    Danke für eure Hilfe.

Ähnliche Themen

  1. AVRStudio Konfiguration: Device m168 wird als m328p gemeldet
    Von oberallgeier im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 16.11.2009, 20:21

Berechtigungen

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