-         
Ergebnis 1 bis 6 von 6

Thema: AtMega32 PWM Noob fragen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151

    AtMega32 PWM Noob fragen

    Anzeige

    Hallo, wenn jemand diese Fragen mal nebenbei beantworten könnte, wäre das nett, dass würde mir den Einstieg ziemlich erleichtern.

    -Beim nutzen von PWM ist die Länge einer Periode irelevant, solange mein Verbraucher träge genug ist, richtig?

    Ein Beispiel war:
    "Quarz = 8 MHz ; Prescaler = 8 ; Timer = 10 Bit ergibt: (8000000Hz/ / (1024*2) = 244,14 Hz "
    244 Hz ist eine recht lange Zeit für eine Periode, aber für ein Getriebemotor dürfte das kein Problem sein, oder?

    -kann ich beim AtMega32 den Hardware PWM für alle Ausgänge benutzen, bzw. auf welche ist das beschränkt?

    -Kann ich 3 Motoren mit einem Timer ansprechen (AtMega32)?
    "Beim einem ATMega8 stehen drei Hardware-PWM-Ausgänge verteilt auf zwei Timer zur Verfügung. "

    -kann ich dabei einen anderen Timer laufen lassen um meine Lichtschranken abzufragen?

    -und gibt es irgendwelche konflikte bei datenübertragungen zum PC via rs232? weil das ja auch immer so eine timing's sache ist, regelt Bascom das von alleine?

    Vielen dank schonmal, ich will auch keine ausschweifenden Erklärungen.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.05.2009
    Ort
    Sinsheim b. Heidelberg
    Alter
    24
    Beiträge
    519
    Hi,
    -kann ich beim AtMega32 den Hardware PWM für alle Ausgänge benutzen, bzw. auf welche ist das beschränkt?
    Nein, der ATmega32 hat meines Wissens nur 4 PWM Pins. PB3, PD4, PD5, PD7. Mit Software PWM kannst du fast alle Pins verwenden.

    Gruß

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Die Länge der Periode, also die Frequenz ist nur dann wichtig wenn du z.B. ein Schaltnetzteil hast. Wenn du da die Schaltfrequenz erhöhst kannst du die Spule und den Kondensator kleiner machen.
    Wenn du Timer1 für die PWM benutzt kannst du ohne weiteres Timer0 als Timer benutzten. Diese beiden Timer sind vollkommen unabhängig.
    Die PWM beeinflusst die Datenübertragung nicht, weil die Datenübertragung über die Hardware UART wieder ein anderer Teil des Controllers ist.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151
    Vielen dank schonmal dafür!

    dann hätte ich noch ein paar kleinigkeiten, ich dem Programmierbeispiel steht
    Code:
    Do
     Compare1a = 205
     Compare1b = 51
    Loop
    muss das "Comparexx = xx" immerwider neu gesetzt werden?

    ginge nicht auch:

    Code:
    Compare1a = 205
    Compare1b = 51
    
    Do
    Loop
    ?

    In dem Beitrag steht, dass man 2 Ausgänge damit timen kann, ich habe mal geguckt und etwas geradten, ist das richtig, dass es ein OC Ausgang sein muss, aber es ist egal welche beiden? und ist auch beim AtMega32 die Zahl auf 2 begrenzt?

    denn dann bräuchste ich zwei Hardware timer und einen normalen für die Lichschranken

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Ja du musst das Register jedesmal neu setzen, weil das nach jedem Durchgang resetet wird.
    Egal welcher OC-Ausgang ist relativ. Wenn da steht OC1A dann sagt das OC aus das es ein PWM-Ausgang ist, die 1 sagt dir das der Ausgang des Compare-Registers zu Timer 1 gehört und das A sagt dir aus das es Ausgang A vom Compare-Register des Timer 1 ist. Es gibt beim Mega32 auch OC1B das ist dasselbe nur das das Ausgang B ist.
    Dafür steht auch das Compare1a. Das Compare sagt dem Compiler das das Compare-Register beschrieben wird, die 1 sagt ihm von welchem Timer und das A sagt ihm das es Ausgang A ist. Wenn da steht OC0 ist es der PWM-Ausgang von Timer 0. Du kannst ja Timer1 für die Hardwaretimer nehmen, also A und B und Timer0 für die Lichtschranke.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151
    "2 8-bit und 1 16-bit Timer"
    Es gibt OC0, OC1A, OC1B und OC2, und ich habe 3 timer,
    also könnte ich doch 2 Hardware PWM's laufen lassen und den dritten timer zum auslesen der Lichtschranke nehmen, oder?

Berechtigungen

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