Hallo,
ich arbeite seit kurzem mit dem 32-bitter UC3 C1512 von Atmel.
Mein Problem im Moment ist, dass ich einen periodischen Interrupt haben
will. Mein Code dafür (nach Einbindung des Frameworks) ist:
1 | #include <avr32/io.h>
|
2 | #include "gpio.h"
|
3 | #include "intc.h"
|
4 | #include "ast.h"
|
5 |
|
6 | int main(void)
|
7 | {
|
8 | Enable_global_interrupt();
|
9 | //AST-Clock ausschalten
|
10 | AVR32_AST.clock &= ~(1 << 0);
|
11 | //Initialisierung als Counter mit 32kHz ohne Prescaler
|
12 | ast_init_counter(&AVR32_AST,1,0,0);
|
13 | //enable Timer
|
14 | ast_enable(&AVR32_AST);
|
15 | //Interrupts initialisieren
|
16 | INTC_init_interrupts();
|
17 | //Interrupt Zuordnung für periodischen AST Interrupt
|
18 | INTC_register_interrupt(&ast_int_handler, AVR32_AST_PER_IRQ, AVR32_INTC_INT0);
|
19 |
|
20 | while (1)
|
21 | {
|
22 | }
|
23 | return 0;
|
24 | }
|
Das Problem ist, dass er im Befehl ast_init_counter in der
Endlosschleife
while (ast_is_clkbusy(ast));
hängt. Ausgegeben wird, dass die Clock busy ist und somit geht es nicht
weiter. Die Clock habe ich jedoch vorher deaktiviert.
Da der Ablauf schon oben hängt und der AST gar nicht aktiviert wird,
kann ich natürlich auch nicht testen, ob der Rest korrekt ist.
Hat das jemand von euch schon am Laufen?
Danke und viele Grüße
Torben