hallo forianer, untenstehender code lässt sich nicht fehlerfrei compilieren, er sagt assignment error bei compare1a und 1b - was mache ich falsch ? für hilfe dankbar ist skragan __________________________________________________ Dim A As Byte Dim B As Byte A = 200 B = 100 Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Enable Timer1 Enable Interrupts Compare1a = A Compare1b = B Do Toggle Led_gelb Waitms 300 Loop
also gut, in der def gibts wohl probleme, also habe ich nun o.a. code geändert und anstelle compare1a=a dann ocr1a=a geschrieben, selbiges mit b. nu kommt aber immernoch keine pwm raus... :/
Du hats dem Compiler auch nicht gesagt wieviel Bit dein PWM haben soll Und den Port als ausgang sehe ich auch nicht. Probier mal das: ================================= Dim A As Byte Dim B As Byte A = 200 B = 100 Ddrb.1 = 1 'Port b.1 als Ausgang. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear up ,Prescale = 64 'PWM =8 ist neu Compare1a = A Compare1b = B
Hoppla,vergessen. Der Befehl "Dbrb.1=1 ist nicht unbedingt nötig und dient nur der sicherheit falls man den Port noch anderweitig nutzt. Wichtig ist nur das "PWM = 8" in der Config. Ohne läuft nix.
vorab schonmal danke, jedoch: der tiny 26 hat nur eine 8bit pwm - gebe ich den befehl in die zeile mit ein, kommt unknown config parameter [pwm]. wegen data direction: Config Portb = Output 'LED´s / ISP stand weiter oben, habe ich nicht mitkopiert :) noch andere ideen ? mittlerweile sieht der code (jetzt koplett kopiert) aktuell so aus:
der code hängt natürlich als anhang dran :)
Hmmm Ich erkenne in deinem Listing auf den ersten Blick nichts ungewöhnliches.Es müßte funktionieren. Leider hab ich momentan keinen T26 hier um das mal zu testen aber normalerweise funktioniert das auch bei mir ohne Probleme. Hier mal nen Einfaches Testprogramm wenn du willst. =================================================== Dim A as Byte Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64 Do Gosub PWM Loop Pwm: For A = 1 to 255 Pwm1a = A Waitms 15 Next Return End ================== Mit ner einfachen LED über 160 Ohm nach Masse sollte es dann gut Sichtbar sein. Oder häng dich mal an Port b3. Der ist frei. Die Configzeile wird dann entsprechend angepasst.
anhängend ein screeni des compilierens. ich habe ja die leise befürchtung, das die def-datei fehlerhaft ist... (im nächsten post)...
also, mit angehängtem assembler code klappts. offenbar wurde bei der übersetzung / umsetzung des compilers auf den tiny26 geschlampt: das korrekte setzen der TCCR1A und TCCR1B ist mit der config timer1=pwm blabla zeile NICHT möglich (siehe beiliegenden code...) das sollte man mal jemandem sagen, der damit zu tun hat... grüße
Mahlzeit zusammen. @Skragan Ich hab mir mal aus nem alten Datenlogger den gesockelten Tiny26 besorgt. Als erstes mal dein Programm "LICHTREGELUNG HW PWM.RTF" Da streikt mein Compiler bei den Zeilen 11 bis 20 da die Portdefinitionen natürlich unsinn sind (Is mir auch nicht aufgefallen weil man die normalerweise nebenbei macht). Richtig ist also : ===================== Config Pina.0 = Input 'Eingangsrelais Config Pina.1 = Input 'Poti R17 Config Pina.2 = Input 'Poti R18 Config Pina.3 = Input 'Poti R19 Config Pina.4 = Output Config Pina.5 = Output Config Pina.6 = Output Config Pina.7 = Output ========================= Danach kann ich das Programm mühelos ohne Fehlernmeldung compilieren. In den Tiny hab ich es noch nicht,muß´erst den Controller ins Steckbrett befördern. Jetzt fällt mir auch wieder ein das die Unterstützung beimn Tiny26 zwecks PWM nicht ganz komplett ist und das man etwas tricksen muß. In meiner Codesammlung findet sich dann auch etwas. Die Register müssen manuell gesetzt werden. Probier mal das hier ==================================0 Dim A As Byte TCCR1A=&B01010011 TCCR1B=&B10000111 Ddrb.1 = 1 'Port b.1 als Ausgang. Do Gosub PWM Loop Pwm: For A = 1 to 255 Ocr1c = 255 OCR1A=127 OCR1B=50 Waitms 15 Next Return End ========================= Verifiziert hab ich es noch nicht. kommt heut Abend wenn ich Zeit habe. Und zur Anmerkung: Ich arbeite noch mit der 7.4 von Bascom. Ein Update auf die 7.8 ist eh fällig wegen M44,88 Support. @Alex Ja,dürfte soweit geklärt sein.
jau, danke für´s nachschauen :) dann liege ich ja nicht falsch mit der vermutung, das bascom das nicht begreift. ich hab die register jetzt auch manuell gesetzt und siehe da: kaum macht man´s richtig, funktioniert´s :))
Yo,mir ist das auch erst so im nachhinein eingefallen das es bei einigen Controllenr noch Fehler gibt. Wie gesagt,ich muß mal unbedingt ein Update auf de 7.8 machen da könnte es dann mit drinne sein.
Hoppla,falscher Knopf. .....Ich werds heut Abend mal in ruhe gegenprüfen.
So,hab geduscht,Gegessen,Post und Mails erledigt und die Familie ist auch abgefertigt. Hab jetzt mal nen Tiny26 auf ein Steckbret geschnallt. Oben im Listing hab ich noch einige Fehler. Deswegen hier die aktuelle Version zum Testen im Anhang. Ich hab mal alle 4 Ports einzeln als Ausgang geschaltet. Funktioniert bei mir ohne Probleme und auch die ca. 2.55 Sekunden pro durhclauf stimmen. Später werd ich mal das besagte Update von Bascom auf die 7.8 machen um zu sehen ob sich an diesem Umstand was geändert hat.
Ich habs nun endlich geschafft mal das Update zu machen. Habs gleich mal Probiert. In der 7.8er gehts mit PWM auf dem Tiny26 nun so wie es gedacht war. Das angepasste Beispiel ist im Anhang. Übrigens: Eine gute Nachricht für die Nutzer der Freewareversion. Der Maximale Code ist auf 4K gewachsen.
hey das klingt ja super... sag schnell, wie hast du das update gemacht ? mit dem wizard ? das geht hier irgendwie nicht... oder überinstalliert ? mit der demo ?
Heut Nacht hatte ich nur die Demo drauf. (Mal eben schnell auf nem anderen Rechner inst.) Vorhin hab ich das Update über den Wizard gemacht (6 Versuche.Server ist wohl ausgelastet) und sehe das wir schon bei 7.9 sind. Es hat sich da ne Menge getan. Viel ist gefixt worden. Probiers einfach zwischendurch mal. Irgendwann klappts.
danke für den tip. bei mir zeigt er im moment noch "there are no components found to update" - ich versuchs über den tag nochmal...
kann man auch die demo runterladen und wieder mit der lic-datei füttern ? das updatedingens geht hier vielleicht auch wegen der firewall nicht ?!
Keine Ahnung. Ich schau alle paar Wochen mal (wenn mirs gerade einfällt) obs nen Update gibt und kümmer mich nicht weiter drum.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.