Der WDT ist standardmässig aus, wenn du nix an den Fuses gedreht hast,
fällt mir nichts mehr ein..
Vielleicht ne instabile Spannungsversorgung? Oder ein
nicht-stabilisiertes Netzteil. Wenn da 5V draufstehen, liefert das im
Leerlauf u.U. deutlich mehr. Und ein AVR zieht ja praktisch nichts an
Strom.
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | ISR(ANALOG_COMP_vect)
|
5 | {
|
6 | PORTB &= ~(1 << PB1);
|
7 | }
|
8 |
|
9 | int main(void)
|
10 | {
|
11 | DDRB = (1 << PB1) | (1 << PB0);
|
12 | PORTB |= (1 << PB1);
|
13 |
|
14 | ACSR = (1 << ACIE);
|
15 | ACSR = (1 << ACIE) | (1 << ACI);
|
16 |
|
17 | sei();
|
18 |
|
19 | while (1)
|
20 | {
|
21 | if (ACSR & (1 << ACO))
|
22 | PORTB |= (1 << PB0);
|
23 | else
|
24 | PORTB &= ~(1 << PB0);
|
25 | }
|
26 | }
|
Ob der AC überhaupt was macht siehst du an dem Code an Pin B0, ob die
ISR aufgerufen wird an Pin B1.
Wie gesagt, mir gehen da langsam die Ideen aus...