Guten Morgen an alle µC Freunde,
ich hätte da mal eine kurze Frage. Ich benutze beim DUE die Hardware
Quadratur Einheit und soweit funktioniert auch alles. Nur habe ich das
Problem, dass ich hin und wieder den gezählten Wert einfach wieder auf 0
setzten möchte. Quasi ein Reset des Quadratur Zählers. Ich nutze
folgenden Code zur Auswertung.
1 | ...
|
2 |
|
3 | REG_PIOB_PDR = mask_quad_A; // activate peripheral function (disables all PIO functionality)
|
4 | REG_PIOB_ABSR |= mask_quad_A; // choose peripheral option B
|
5 | REG_PIOB_PDR = mask_quad_B; // activate peripheral function (disables all PIO functionality)
|
6 | REG_PIOB_ABSR |= mask_quad_B; // choose peripheral option B
|
7 |
|
8 | // activate clock for TC0
|
9 | REG_PMC_PCER0 = (1<<27);
|
10 | // select XC0 as clock source and set capture mode
|
11 | REG_TC0_CMR0 = 5;
|
12 | // activate quadrature encoder and position measure mode, no filters
|
13 | REG_TC0_BMR = (1<<9)|(1<<8)|(1<<12);
|
14 | // enable the clock (CLKEN=1) and reset the counter (SWTRG=1)
|
15 | // SWTRG = 1 necessary to start the clock!!
|
16 | REG_TC0_CCR0 = 5;
|
17 |
|
18 | ...
|
Hier ist dann der aktuell quadrierte Wert abgelegt ( REG_TC0_CV0 ).
Ich hab schon getestet REG_TC0_CV0 = 0; zu setzten. Das funktioniert
leider nicht.
Weiß jemand wie ich das machen kann?
Vielen Dank im Voraus.
LG
Digit-22