Hallo Leute, mein Model wird gesteuert durch einen 2313. Berichtigt mich, wenn ich mich irre, aber 1 sec hat 100 ms. das heißt, 10 sekunden wären 1000ms. Ich habe den so programmiert und musste aber feststellen, dass die Zeit überhaupt nicht stimmte. Ich musste sie um einen Faktor von 1.35 erhöhen, um annähernd die Zeit von 10 sec. einzuhalten. Woran liegt das denn? Ein Ausschnitt aus dem Programm: Waitms 945 'Anlaufzeit des CD-Players+Zeit bis Start Waitms 2025 Portb.3 = 1 Waitms 2565 Portb.3 = 0 Waitms 3780 Portb.1 = 1 Waitms 945 Portb.2 = 1 Waitms 1215 Portb.3 = 1 Waitms 810 Portb.3 = 0 Portb.5 = 1 Waitms 8235 Portb.5 = 0 Portb.3 = 1 Waitms 2160 Portb.3 = 0 Waitms 1080 Portb.2 = 0 Waitms 1890 Portb.1 = 0 End Gruß Krakeman
Andi schrieb: > Berichtigt mich, wenn ich > mich irre, aber 1 sec hat 100 ms. ms = Millisekunden. Milli= 1000. Somit 1ms = 1/1000 Sekunden. Erinnere dich mal an Zentimeter und Millimeter. Na klingelts?
cyblord ---- schrieb: > Milli= 1000. ja klar... und kilo = 0,001 ;-) Weitere Vorschläge zur Mathematikreform?
Adam Rübe schrieb: > cyblord ---- schrieb: >> Milli= 1000. > > ja klar... und kilo = 0,001 ;-) > > Weitere Vorschläge zur Mathematikreform? Trottel... Ich denke den restlichen Teilnehmern war klar wie das gemeint ist. Der lateinische Wortstamm "Mille" entspricht Tausend. Milli als Vorsatz für Maßeinheiten deshalb tausendstel. Was übrigens auch durch das 1/1000 angedeutet war. Also krieg dich wieder ein. Und mit Mathematik hat das auch alles recht wenig zu tun.
Wieso müssen sich hier immer alle angiften. Kann das nicht mal sachlich bleiben?
Ok, ich habe mich verhauen, das kann auch mal einem Techniker passieren, aber wieso musste ich den Faktor um 1.35 erhöhen, und nicht um 10?
Ich habe eine Frage, was soll |Waitms| für eine Funktion sein ? Einfach ein Delay oder ist die Wartezeit timerbasierend ? Wenn das ein einfaches Delay ist, dass ist das nie genau, da jeder Interrupt die Ausführungszeit verlängert. oK?
Ich habe nur in Bascom programmiert, ich denke, dass das nur ne Verzögerung darstellt, bis der nächste Befehl ausgeführt wird
hast du denn Interrupts in deinem Programm? Welche Taktquelle benutzt du? Hast du dem Programm den richtigen Takt mitgeteilt?
$regfile = "2313def.dat" $hwstack = 32 $swstack = 10 $framesize = 40 $crystal = 8000000 ' Achtung: Taktfrequenz per Fusebits auf 8 MHz einstellen! '----------------------------------------------------------------------- -------------------------- ' Ports auf Ausgang setzen '----------------------------------------------------------------------- -------------------------- Ddrb = &B11111111 Ddrd = &B01111111 habe ich aus einem fertigen Programm übernommen...
$crystal = 8000000 UND -- läuft der RC Oszillor oder ist ein externer Quarz angeschlossen und richtig beschaltet ? Welche Fusebits sind gesetzt ?
Uwe S. schrieb: > $crystal = 8000000 UND -- > > läuft der RC Oszillor... Naja, es gibt immer noch Bascomer, die meinen, mit der $crystal-Angabe den AVR auf den genannten Takt einstellen zu können... ...
Fusebits habe ich auch keine gesetzt, habe auch keine Ahnung, wie das geht. Bin in den Kinderschuhen, was das betrifft. Der 2313 soll doch nur das machen, was ich will :-))
Andi schrieb: > Taktfrequenz per Fusebits auf 8 MHz einstellen! 10/8 = 1,25 also um Faktor 10 verrechnet und Takt nur 1 Mhz statt 8. clkdiv8 Fuse falsch. kommt doch mit 1,35 in etwa hin.
Wenn du dann noch 1 Sekunde = 1000 Millisekunden beachtest wirds funktionieren.
Super, ich werde es probieren. Wie immer bekomme ich in diesem Forum gute Antworten, abgesehen von Leuten die sich für Gott halten und andere beleidigen müssen. Als Dank ein Link zu meinem Karussell http://www.youtube.com/watch?v=ejOkMP1EC9A&feature=channel&list=UL
Habe die letzte Zeit einige 2313 mit internem RC laufen um einen 0815 Timer zu ralisieren, dabei habe ich bei einer minute soll teilweise nur 57 sekunden rausbekommen, mit nem externen Quarz, konnt ich die Uhr gar nicht so genau stoppen ;) Also nicht wundern wenn du doch noch etwas anpassen musst. LG
Es könnte hilfreich sein, zu schauen was das Datenblatt zur Genauigkeit des internen Oszillators sagt. Tip: sie ist bescheiden.
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.