Hallo, ich möchte, dass mein Tiny13 bei jeder Flanke an ADC1 (verglichen mit der internen Referenzspannung) einen Interrupt auslöst und einen anderen Pin togglet. Hier ist mein Code:
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | |
4 | char on = 0; |
5 | void toggleLED() |
6 | {
|
7 | if (on == 0) |
8 | {
|
9 | PORTB |= (1<<PB4); |
10 | on = 1; |
11 | }
|
12 | else
|
13 | {
|
14 | PORTB &= ~(1<<PB4); |
15 | on = 0; |
16 | }
|
17 | }
|
18 | |
19 | ISR (ANA_COMP_vect) |
20 | {
|
21 | toggleLED(); |
22 | }
|
23 | |
24 | int main() |
25 | {
|
26 | ADCSRA &=~(1 << ADEN); |
27 | ADCSRB |= (1 << ACME); |
28 | |
29 | ADMUX = (1 << MUX0); |
30 | |
31 | ACSR = (0 << ACD) | (1 << ACBG) | (1 << ACIE) | (1 << ACIS1) | (1 << ACIS0); |
32 | |
33 | sei(); |
34 | |
35 | while (1) { } |
36 | }
|
37 | |
38 | Leider togglet der Pin PB4 nicht. Was mache ich falsch? |