Hallo, habe ein Problem mit dem Timer des AT91SAM7S256. Ich möchte Impulse, welche am TIOAx - Eingang (0 und 1 benutzt) anliegen, zählen indem ich diese Frequenz als externe Counterfrequenz für das jeweilige CV-Register verwendete. Über das BMR müsste das, zumindest wenn ich die Beschreibung richtig verstanden habe, funktionieren. Leider tuts nicht so in der Realität. Nach einer bestimmten Torzeit will ich das CV-Register auslesen und löschen. Das Ganze beginnt dann von neuem. Hier noch die wichtigen Auszüge aus dem Source: Init: AT91C_BASE_TCB->TCB_BMR = (AT91C_TCB_TC0XC0S_TIOA1 | AT91C_TCB_TC1XC1S_TIOA0 | AT91C_TCB_TC2XC2S_NONE); Enable: AT91C_BASE_TC1->TC_CCR = AT91C_TC_CLKDIS; AT91C_BASE_TC1->TC_IDR = 0xFFFFFFFF; ui_Status = AT91C_BASE_TC1->TC_SR; // Zähler aufsetzen (XC1) AT91C_BASE_TC1->TC_CMR = (AT91C_TC_CLKS_XC1); // Zähler aktivieren AT91C_BASE_TC1->TC_CCR = (AT91C_TC_CLKEN | AT91C_TC_SWTRG); ui_Status = AT91C_BASE_TC1->TC_SR; AT91C_BASE_TC1->TC_CCR = (AT91C_TC_CLKEN); Disable: AT91C_BASE_TC1->TC_CCR = AT91C_TC_CLKDIS; Read: ui_Status = AT91C_BASE_TC1->TC_SR; ui_Zwischen = AT91C_BASE_TC1->TC_CV; if ((ui_Status & AT91C_TC_COVFS) == AT91C_TC_COVFS) ui_Zwischen += 65536; // Lösche CV AT91C_BASE_TC1->TC_CCR = (AT91C_TC_CLKEN | AT91C_TC_SWTRG); ui_Status = AT91C_BASE_TC1->TC_SR; AT91C_BASE_TC1->TC_CCR = (AT91C_TC_CLKEN); Habe mein Problem an die Hotline von Atmel gesandt, aber nur einen Beispielcode ohne Zusammenhang zu meinem Problem bekommen. Möchte keinen Interrupt verwenden! Momentan läuft schon eine Interruptlösung für das Problem, welches aber durch weitere Interrupts bei höherer Eingnagsfrequenz zu einer hohen Auslastung des MC´s führt. Vielleicht kann mir doch noch einer helfen ;-) Die Hoffnung stirbt zuletzt. Im Voraus besten Dank und Grüße Jörg
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.