Ich würde bei diesem Beispiel bleiben obwohl da meiner Ansicht nach eine sinnentstellender Reihenfolgefehler drin ist (wie auch bei den beiden anderen Beispielen).
Ein gesetztes TSM Bit bewirkt das Beibehalten eines gesetzten PSR10 Bits, das sonst nach Setzten sofort wieder gelöscht wird. Ein Setzen des PSR10 Bits bewirkt das Rücksetzen des Timer Prescalers. Mit gesetztem TSM Bit bleibt der Prescaler im rückgesetzten Zustand und der Timer läuft nicht. Nun hat man Zeit den Timer zu konfigurieren und mit einem Löschen des TSM gezielt im konfigurierten Zustand loslaufen zu lassen.
Hier ist auch der Reihenfolgefehler im Beispiel:
clr rmp
out GTCCR,rmp
kommt vor vor der Konfiguration des Timers (TCNTL, TCNTH, ...). Es muß dem Sinn nach danach kommen.
Ob das gleichzeitige Setzen von TSM und PSR10 von 0 auf 1 zum gleichen Ergebnis führt wie erst TSM und im zweiten Schritt zusätzlich das PSR10 kann ich aus dem Datenblatt nicht entnehmen. Müßte man mal ausprobieren. Bis dahin würde ich o.g. Reihenfolge des Setzens von TSM und PSR10 beibehalten.
Grob übesetzt steht da, daß mit TSM das PSR10 Bit beibehalten und damit das Prescaler Reset Signal aufrechterhalten bleibt. Wenn TSM auf 0 gesetzt wird, wird PSR10 über hardware gelöscht und der Timer beginnt zu laufen.Raffe dass Englische nämlich nicht, trotz Google-Übersetzers, wegen dem
letzten Satz :
• Bit 7 – TSM: Timer/Counter Synchronization Mode
Writing the TSM bit to one activates the Timer/Counter Synchronization
mode. In this mode, the value that is written to the PSR10 bit is kept,
hence keeping the Prescaler Reset signal asserted. This ensures that the
Timer/Counter is halted and can be configured without the risk of
advancing during configuration. When the TSM bit is written to zero, the
PSR10 bit is cleared by hardware, and the Timer/Counter start counting.
Wenn PSR10 gesetzt wird, wird Timer/Counter0 prescaler rückgesetzt. Das Bit wird normalerweise sofort per hardware zurück gesetzt, außer wenn TSM gesetzt ist.• Bit 0 – PSR10: Prescaler Reset Timer/Counter0
When this bit is one, the Timer/Counter0 prescaler will be Reset.
*This bit is normally cleared immediately by hardware, except if the TSM
bit is set.*
Gruß
Searcher
Lesezeichen