Michael K. schrieb:
> Hallo,
>
> ich bin gerade dabei, mit einem AVR32 einen Counter zu programmieren.
> Und zwar will ich die Flanken eines externen Signals zählen. Ich arbeite
> da auch mit dem ASF (Example Framework) und hab mir auch das
> Codebeispiel zu Timer/Counter da angeschaut und Teile da raus genommen -
> allerdings wird da irgendwie nicht das Register cv einfach hochgezählt
> bei einem Impuls auf TIOA0, sondern das hängt irgendwie mit der
> Taktfrequenz zusammen!?
>
> Jetzt ist eben meine Frage, wie realisiere ich einen einfachen Counter,
> der ein externes Signal auf TIOA0 zählt?
> Für die capture options hab ich folgende Einstellungen: .channel =
> channel, // Channel selection.
>
> .ldrb = TC_SEL_NO_EDGE, // RB loading selection.
> .ldra = TC_SEL_FALLING_EDGE, // RA loading selection.
>
> .cpctrg = TC_NO_TRIGGER_COMPARE_RC, // RC compare trigger
> enable.
> .abetrg = TC_EXT_TRIG_SEL_TIOA, // TIOA or TIOB external
> trigger selection.
> .etrgedg = TC_SEL_FALLING_EDGE, // External trigger edge
> selection.
>
> .ldbdis = false, // Counter clock disable
> with RB loading.
> .ldbstop = false, // Counter clock stopped
> with RB loading.
>
> .burst = TC_BURST_NOT_GATED, // Burst signal selection.
> .clki = TC_CLOCK_RISING_EDGE, // Clock inversion.
> .tcclks = TC_CLOCK_SOURCE_TC4 // Internal source clock
> 4, connected to fPBA / 32.Ich bin mir nicht sicher (da mir nicht klar
> ist, was diese Register alle
> tun - auch aus dem Datenblatt werd ich da nicht ganz schlau), glaub
> aber, dass ich hier irgendwo andere Einstellungen brauche.
>
> Würd mich freuen, wenn mir jemand helfen könnte. :)
Das Problem ist hier:
statt
".tcclks = TC_CLOCK_SOURCE_TC4 // Internal source clock 4,
connected to fPBA / 32."
dieses.
.tcclks = TC_CLOCK_SOURCE_XC0 // Éxternal Clock X0
Weiter hin muss mit
"gpio_enable_module_pin(uint32_t pin, uint32_t function)" die
GPIO-Matrix umgeschaltet werden.
z.B. gpio_enable_module_pin(AVR32_TC1_CLK0_1_PIN,
AVR32_TC1_CLK0_1_FUNCTION) verbindet den GPIO59 mit dem Eingang XCLK0
vom TC1. Nun können die Impulse vom GPIO59 (Pin / Port Zuordnung siehe
Datasheet beim UC3C0512 ist diese PB27, Pin 66 ).