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).
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
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
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!
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
Hallo,
beim Mega2560 hätten aber auch Timer0 und 2 zwei PWM Kanäle !
Timer 1, 3, 4 und 5 wohl jeweils 3 PWMs.
@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.
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
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:
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.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
Viele Grüße
Cornelius
Und wo hast du jetzt dein Timer5 gelassen?
Wenn ich Timer5 schreibe dann kommt ein debug fehler
Lesezeichen