-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: PWM beim ATmega8

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.10.2006
    Beiträge
    109

    PWM beim ATmega8

    Anzeige

    Hallo,
    bin gerade dabei mich mal mit PWM zu versuchen. Als kleines Testprogramm habe ich mal folgendes zusammengeschrieben.

    Code:
    $regfile = "m8def.dat"                                      'ATmega8 Prozessor
    $crystal = 8000000                                          '16MHz Intern
    
    $sim                                                        'Nach Test entfernen
    
    Config Portb.1 = Output
    Config Portb.2 = Output
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , _
    Compare B Pwm = Clear Up , Prescale = 1
    
    
    
    
    
    Do
    
    
    Pwm1a = 205
    Pwm1b = 51
    
    Loop
    
    End
    Ist das richtig, wenn ich nur 1 Ausgang als PWM benötige, daß ich dann den zweiten als Output definierten Pin weglassen kann und in der Timer Config Anweisung auch das Compare B PWM weglassen kann?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    ich arbeite mich momentan zwar auch erst in PWM ein; Deine Aussage sollte aber richtig sein.

    Bei Interesse:
    http://www.roboternetz.de/phpBB2/zei...478&highlight=


    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ist das richtig, wenn ich nur 1 Ausgang als PWM benötige, daß ich dann den zweiten als Output definierten Pin weglassen kann und in der Timer Config Anweisung auch das Compare B PWM weglassen kann?
    Absolut richtig.

    Allerdings ist PWM unter Bascom so ein Thema für sich (zumindest meiner Erfahrung nach). So richtig im Griff hatte ich es erst, als ich dem Controller auf Register-Ebene gesagt habe, was er tun soll. Das erfordert zwar ein wenig Eindenken, aber es macht sich bezahlt. So sehr ich Bascom schätze - beim Thema PWM kommt es m.E. schnell an seine Grenzen (und der Anwender irgendwann auch...).

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo,

    selbst wenn man ein vernünftiges PWM zusammenbekommt, ist der Prozessor schwer beschäftigt und es können fast keine weiteren timingkritischen Aufgaben erfüllt werden. Das hat aber nur sekundär mit Bascom was zu tun. Sehr gerne setze ich für LED-PWM den PCA9635 ein. Der hat 16 einzelne PWM Ausgange mit 96 kHz! und zusätzlich eine Summen PWM. Ein Spezialist eben. Wer schon mal mit I²C gearbeitet hat, wird die Ansteuerung schnell beisammen haben.

    Günter

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi guenter1604,

    das verstehe ich nun nicht ganz.

    Ich dachte die Timer laufen bei einer "Hardware-PWM" autonom und ohne Rechenzeit vom Prozessor "abzuzwacken"?

    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377
    Zitat Zitat von Klingon77
    Ich dachte die Timer laufen bei einer "Hardware-PWM" autonom und ohne Rechenzeit vom Prozessor "abzuzwacken"?
    Hallo Klingon77!

    Das ist auch so. Lass dich nicht verwirren. ;-)

    mfg
    Gerold
    :-)

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    mal Dank für die rasche Aufklärung \/

    Momentan bin ich, ob der vielen Info´s, welche durch meinen AVR-Einstieg auf mich einprasseln, mitunter "leicht confused" und nicht immer "trittfest auf zwei Beinen"


    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo,

    sorry für das Durcheinanderbringen. Ich habe Sauerbruchs Antwort als Software-PWM interprätiert (mein Fehler).
    Wenn er jedoch Hardware-PWM gemeint hat, ist doch Bascom kein Performance-Problem? Der Hardware-PWM wird doch durch Bascom exakt gleich konfiguriert wie wenn ich die Register direkt setze ?

    jetzt bin ich auch durcheinander

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    so hab ich ne 10 Kanal Software-PWM zusammengebastelt:

    Code:
    Ontimer2:
    
     Tick = Tick + 1
     Timer2 = 200
     If Tick >= Range Then Tick = 0
     If Tick < V_hell(1) Then
        K1 = Channels.1
     Else
        K1 = 0
     End If
      If Tick < V_hell(2) Then
        K2 = Channels.2
     Else
        K2 = 0
     End If
      If Tick < V_hell(3) Then
        K3 = Channels.3
     Else
        K3 = 0
     End If
      If Tick < V_hell(4) Then
        K4 = Channels.4
     Else
        K4 = 0
     End If
      If Tick < V_hell(5) Then
        K5 = Channels.5
     Else
        K5 = 0
     End If
     If Tick < V_hell(6) Then
        K6 = Channels.6
     Else
        K6 = 0
     End If
      If Tick < V_hell(7) Then
        K7 = Channels.7
     Else
        K7 = 0
     End If
     If Tick < V_hell(8) Then
        K8 = Channels.8
     Else
        K8 = 0
     End If
      If Tick < V_hell(9) Then
        K9 = Channels.9
     Else
        K9 = 0
     End If
      If Tick < V_hell(10) Then
        K10 = Channels.10
     Else
        K10 = 0
     End If
    Return

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377
    Zitat Zitat von guenter1604
    Der Hardware-PWM wird doch durch Bascom exakt gleich konfiguriert wie wenn ich die Register direkt setze ? jetzt bin ich auch durcheinander ;-)
    Hallo guenter1604!

    In Bascom kann man die Einstellungen für PWM direkt in die Register schreiben. Wenn man stattdessen den Highlevel-Befehl ``CONFIG TIMERx = PWM`` verwendet, um damit Hardware-PWM einzurichten, dann stellt Bascom auf "Phase Correct PWM Mode". Den PWM-Modus kann man mit dem Highlevel-Befehl nicht beeinflussen.

    Genaue Informationen über die möglichen PWM-Modi findet man z.B. im Datenblatt des ATmega8 im Kapitel "16-bit Timer/Counter1 -- Modes of Operation".

    mfg
    Gerold
    :-)

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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