Hi. Wenn man einen Quarz mit schön gerader Frequenz benutzt, z.B. 10 MHz, ist es schön einfach, einen Millisekundentimer zu machen. Aber die RS232 Baudraten nicht normgerecht. Kann man den PC auch auf 128 Kbit/s einstellen? Oder macht die Differenz zu 115200 nichts aus?
J.T schrieb: > Hi. > > Wenn man einen Quarz mit schön gerader Frequenz benutzt, z.B. 10 MHz, > ist es schön einfach, einen Millisekundentimer zu machen. Das ist aber kein Argument. Denn mit CTC kann man auch aus jedem anderen Takt schön einfach einen Millisekundentimer machen. Edit: Ausserdem frage ich mich gerade, wie du aus 10Mhz 'schön einfach' einen Millisekundentimer machen willst. Die Vorteiler der Timer sind bei den AVR immer 2-er Potenzen. 10MHz ist aber keine 2-er Potenz oder ein Vielfaches der Vorteiler. Wenn du also jetzt schon keinen CTC Modus benutzt, dann stimmen deine Millisekunden sowieso schon nicht. Wenn du aber CTC Modus benutzt, dann ist ein anderer Quarz (Baudratenquarz) lediglich eine Frage eines anderen Comparewertes bzw. Vorteilers. > Kann man den PC auch auf 128 Kbit/s einstellen? Oder macht die Differenz > zu 115200 nichts aus? Du kannst dir ca 3 bis 5% Abweichung erlauben. Lieber weniger als mehr. Jetzt rechne mal.
Das läßt sich einfach ausrechnen. Ein Byte auf der seriellen Schnittstelle ist 10 Bit lang (incl. Start & Stop). Die Synchronisation zwischen Sender und Empfänger findet bei der ersten Flanke des Start-Bits statt und am Ende muß der Abtastzeitpunkt noch sauber genug innerhalb des richtigen Bits liegen.
Welcher Quarz ist denn am Besten geeignet, um folgendes zu machen: -Möglichst genaue Millisekunde für Uhrenfunktion und DCF77 Modul Auswertung. -normgerechte RS232 Verbindung zur Programmierung der Timer, Feiertage und Schichtplan. -RS485 und ISM Funk zu Subsystemen Subsystem: -Ansteuerung von 500W Baustrahler (Lichtwecker) -Ansteuerung von Stereoanlage via Infrarot (Simulierung der Fernbedienung) -2x LED Display, eines davon als Großanzeige
J.T schrieb: > 10 MHz, Ich nehme da immer einen sogenannten Baudratenquarz. Mit 9,8304MHz ist die Abweichung auf der seriellen Schnittstelle bei 0% und für den Timer ereiche ich immerhin 75Hz als kleinste 2er-Potenz. Die 75Hz zähle ich halt in der Timer-ISR und erledige nebenbei noch ein paar wichtige Sachen, z.B. Tasten abfragen, LED-Anzeige refreshen etc. Mit anderen Quarzen z.B. 18.432MHz erreicht man andere Werte, doch der Baudratenfehler ist immer 0.
Karl Heinz Buchegger schrieb: > Wenn du aber CTC Modus benutzt, dann > ist ein anderer Quarz (Baudratenquarz) lediglich eine Frage eines > anderen Comparewertes bzw. Vorteilers. Bei beliebigen Quarzen kann dass für einen Millisekunden-Takt dann leicht in ewiges Hin- und Herprogrammieren des Comparewertes ausarten. Der Prozessor macht's ja, aber muß das sein...
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.