Hallo, ich benutze das AVRStudio 5 mit dem ASF. Aus dem ASF benutze ich den TC-Driver. Nun möchte ich der Timer 0 mit einer Frequenz von 1Hz konfigurieren und aller 1s einen (compare-)interrupt auslösen. Ich möchte die "Frequency Waveform Generation" (FRQ) nutzen. Ich krieg es aber nicht hin, hier ein paar Code-Auszüge: aus der main.c
1 | volatile uint8_t tc_flag=0; |
2 | |
3 | void main() |
4 | {
|
5 | //...
|
6 | tc_enable(&TCC0); |
7 | tc_set_wgm(&TCC0, TC_WG_FRQ); |
8 | tc_write_clock_source(&TCC0, TC_CLKSEL_DIV64_gc); |
9 | tc_set_direction(&TCC0, TC_UP); |
10 | tc_enable_cc_channels(&TCC0, TC_CCAEN); |
11 | tc_set_cca_interrupt_callback(&TCC0, tc_callback); |
12 | tc_set_cca_interrupt_level(&TCC0, PMIC_LVL_HIGH ); |
13 | double freq = 1.0; |
14 | tc_write_cc(&TCC0, TC_CCA, (tc_get_resolution(&TCC0)/freq) - 1 ); |
15 | pmic_init(); |
16 | pmic_enable_level(PMIC_LVL_HIGH); |
17 | //...
|
18 | while(1) |
19 | {
|
20 | // ...
|
21 | if(tc_flag) |
22 | {
|
23 | printf("tick\r\n"); |
24 | tc_flag=0; |
25 | }
|
26 | // ...
|
27 | }
|
28 | }
|
29 | |
30 | void tc_callback() |
31 | {
|
32 | tc_flag = 1; |
33 | }
|
Wo ist der Fehler? Alles andere (USART usw.) funktioniert.