Der Wert im Register TACCR0 bestimmt die Zeit, wann der TIMER einen
interrupt auslöst.
Wenn ein Quarz mit 32768Hz verwendet wird, muss man für jeweils 1,5s
Zeitabstand in TACCR0
32768 x 1,5 = 49152 oder 49152-1 = 49151 eintragen?
MfG
Nachtrag:
Es wird die Betriebsart MC0, also zählen bis TACCR0 erreicht wird,
verwendet. Auch in dieser Betriebsart sollten 1,5 s einstellbar sein.
Deshalb würde ich mich freuen, wenn jemand auf meine Frage nochmals
eingehen würde
MfG.
Was meinst du mit Betriebsart MC0? Wenn die Mode control Bits Null sind
ist der Timer gestoppt.
Wenn du den Timer im Up-Mode betreibst dürfte 49151 der richtige Wert
für 1,5 s sein weil von 0 gezählt wird:
0, 1, 2, ..., 49151, 0, ...
Wolfgang-G schrieb:> gibt es noch weitere Meinungen?
Über Meinungsumfragen kann man das zwar lösen, aber viel besser als ein
Ratespiel ist das auch nicht.
Du schreibst nicht, welche Entwicklungsumgebung du benutzt, aber
normalerweise sollte die über einen CPU-Taktzähler und/oder eine
Stoppuhr verfügen, damit du im Zweifelsfall genau solche Dinge im
Simulator ausmessen kannst.
MfG
Dank an alle, die sich an der "Meinungsumfrage" beteiligt haben.
Stefan und Denis, sowie Anwendungsbeispiele von TI und weitere eigene
Überlegungen haben mich überzeugt, dass mit 49152-1 genau eine Taktzeit
von 1,5s erzeugt wird.
@Stefan
Ich verwende mspgcc und hier ist in timera.h die Betriebsart wie folgt
definiert:
#define MC0 0x0010 /* Timer A mode control 0 */
#define MC_0 (0<<4) /* Timer A mode control: 0 - Stop */
#define MC_1 1<<4) /* Timer A mode control: 1 - Up to CCR0
d.h. MC0 ist gleich MC_1.
Programmieren ist nicht so mein Ding. Deshalb mal die Frage: bedeutet
(1<<4), dass die 1 4 Stellen nach links geschoben wird?
MfG