- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Hilfe gesucht: PWM funktioniert nicht bei Timern 0, 2, 5

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.02.2008
    Ort
    Weil der Stadt
    Alter
    30
    Beiträge
    50

    Hilfe gesucht: PWM funktioniert nicht bei Timern 0, 2, 5

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich wollte für meinen neuen ATMega 2560 mal alle PWM-Kanäle durchprobieren. Dabei ist mir aufgefallen, dass das nur mit Timer 1,3 und 5 funktioniert. Es kommt beim Syntax-Check zu folgenden Fehlermeldungen:

    1.: Gebe ich "Config Timer0 = Pwm , Pwm = 8 ..." ein, wird Timer0 automatisch blau und klein geschrieben (Normal ist rot und alles groß). Außerdem erkennt Bascom das Ganze irgendwie nicht an. Es kommt die Fehlermeldung: "Invalid Parameter for CONFIG parameter or value [8]".
    Ändere ich zu Timer1 wird dieser automatisch rot und groß geschrieben und die Fehlermeldung taucht bei erneutem Syntax-Check nicht mehr auf. Der selbe Fehler tritt bei Timer2 auf.

    Ich habe keinerlei Ahnung warum Bascom zwischen Timer0 und Timer1 unterscheidet und was den Unterschied ausmacht! Das wirk auf mich zutiefst unlogisch.

    2.:Gebe ich nun Timer5 ein, wird das sofort erkannt und wird rot und groß geschrieben. Beim Syntax-Check erscheint jedoch folgende Fehlermeldung: Illegal character [expected (,got "[TCC53A]].
    Wieder ist das für mich unerklärbar!

    Kann mir irgendjemand helfen? Was geht da vor? Ist Bascom zu doof für die vielen Kanäle des ATMega 2560 oder ist das schlicht ein Bug?

    Viele Grüße
    Cornelius

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Bei Config Timer0 ist die Zuweisung PWM = 8 nicht sinnvoll, da der Timer0 nur 8 Bit hat. Kann also sein, dass Bascom das da einfach nicht haben will.
    Gleiches bei Timer2 (8-Bit-Timer).
    #ifndef MfG
    #define MfG

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.02.2008
    Ort
    Weil der Stadt
    Alter
    30
    Beiträge
    50
    Danke für den Tip, leider hat es auch nicht so viel geholfen. Man kann zwar die Configs alleine Compilieren, das bringt einem aber wenig. Es fehlen die Compares. Auch da erkennt Bascom Timer 0 und 2 anders als 1,3,4 und 5. Bitte im Screeshot nachschauen!

    Timer 5 ist ein Spezialfall, er ist als Bug schon bekannt und noch nicht behoben.

    Warum aber Timer 0 und 2 andere Schriftart und Farbe bekommen verstehe ich absolut nicht!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm-screenshots.jpg  

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Bei Timer 0 und 2 gibts auch nur 1 PWM-Kanal. Also nur 0 oder 2, nicht 0A, 2A.

    Der letzte Fehler scheint noch ein Bug in Bascom zu sein; ebenso die Farbgebung. Da war man anscheinend nicht ganz konsequent.
    #ifndef MfG
    #define MfG

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

    beim Mega2560 hätten aber auch Timer0 und 2 zwei PWM Kanäle !
    Timer 1, 3, 4 und 5 wohl jeweils 3 PWMs.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    27.02.2008
    Ort
    Weil der Stadt
    Alter
    30
    Beiträge
    50
    @Jaecko: Das stimmt so nicht. Timer0 und Timer2 haben jeweils 2 PWM-Kanäle: http://www.robotikhardware.de/download/rnmega2560.pdf auf Seite 7. Timer 1, 3, 4 und 5 wie schon gesagt jeweils 3.

    Dennoch hab ich das ausprobiert und auf den Screenshots kann man sehen was rauskam. Bei Timer0 hilft das weglassen von A gar nichts. Bei Timer 2 aber sehr wohl! Fügt man dann ein A hinzu geht wieder gar ncihts mehr.

    Meint ihr wirklich die Farbgebung hat keine Auswirkung auf das Resultat? Ich bin der Meinung der Bug sitzt tiefer, bin aber auch blutiger Anfänger.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm-screenshots2.jpg  

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Ah stimmt. Die "grossen" haben da wieder mehr; war da jetzt irgendwie noch beim Mega8.

    Aber eigentlich sollte man meinen, dass Bascom in der letzten Zeit die Fehler was den M2560 angeht, ausgebessert hat. Zu der Zeit, als ich die Kombination das letzte Mal benutzt hab, gingen z.B. die ADC-Kanäle 8-15 nicht bzw. die Ports K, L nicht richtig.

    Das mit der Farbgebung hat mich damals auch zeitweise "gestört". ABer irgendwann hab ichs einfach ignoriert.
    Evtl geht die Farbgebung ja dann richtig, wenn du statt Compare** einfach PWM** schreibst. Ich glaub, dass die da einfach "vergessen" haben, den jeweiligen Text als Schlüsselwort darzustellen.

    Du kannst ja auch mal in diese m2560def.dat schauen, ob da die jeweiligen Namen (z.B. Timer5) überhaupt drinstehen.
    #ifndef MfG
    #define MfG

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    27.02.2008
    Ort
    Weil der Stadt
    Alter
    30
    Beiträge
    50
    Hallo,

    danke für den PWM**-Tip, das wars! Ich konnte alle möglichen PWMs testen - sie funktionieren. Bin total überrascht, dass das so gut ging. Ich fange gerade mit AVR und Bascom an, hab davor noch nichts damit zu tun gehabt, sehr wohl aber mit Mikrocontrollern.

    Hier der Code für alle die es interessiert:
    Code:
    $prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus
    $regfile = "m2560def.dat"
    $hwstack = 82                                               '80
    $framesize = 68                                             ' 64
    $swstack = 68                                               '44
    $crystal = 16000000                                         'Quarzfrequenz
    
    Config Portg.5 = Output
    Config Porte.3 = Output
    Config PortE.4 = Output
    Config Porth.3 = Output
    Config PortH.4 = Output
    Config PortH.5 = Output
    Config PortH.6 = Output
    Config PortB.4 = Output
    Config PortB.5 = Output
    Config PortB.6 = Output
    Config PortB.7 = Output
    
    Config Pind.5 = Output
    Led Alias Portd.5
    
    Config Timer0 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 256
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Compare C Pwm = Clear Up , Prescale = 256
    Config Timer2 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 256
    Config Timer3 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Compare C Pwm = Clear Up , Prescale = 256
    Config Timer4 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Compare C Pwm = Clear Up , Prescale = 256
    
    
    
    Do
       Led =0 
       Pwm0b = 160
       Pwm1a = 160
       Pwm1b = 160
       Pwm1c = 160
       Pwm2a = 160
       Pwm2b = 160
       Pwm3a = 160
       Pwm3b = 160
       Pwm4a = 160
       Pwm4b = 160
       Pwm4c = 160
       Waitms 1000
       Led = 1
       Pwm0b = 80
       Pwm1a = 80
       Pwm1b = 80
       Pwm1c = 80
       Pwm2a = 80
       Pwm2b = 80
       Pwm3a = 80
       Pwm3b = 80
       Pwm4a = 80
       Pwm4b = 80
       Pwm4c = 80
       Waitms 1000
    Loop
    
    End
    Hat diese Forum im Moment eigentlich einen Bug? Wenn meine Antwort eine bestimmte Länge überschreitet springt die Ansicht ohne zutun immer nach ganz oben und dann wieder ganz runter wenn ich schreibe.

    Viele Grüße
    Cornelius

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    33
    Beiträge
    1.080
    Blog-Einträge
    1
    Und wo hast du jetzt dein Timer5 gelassen?

    Wenn ich Timer5 schreibe dann kommt ein debug fehler

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad