Hallo
Danke für die Anteilnahme und die Tipps. Mein Favorit ist im Moment die Versorgungsspannung. Ich habe irgendwo gelesen, dass die AVRs sehr empfindlich reagieren wenn am ADC eine höhere Spannung anliegt als die Referenz. Das könnte eventuell beim Einschalten passieren. Ich werde nun auf jeden Fall eine Diode in Reihe schalten um mehr Abstand zu den 5,5V zu bekommen.
Es geht natürlich immer besser, wenn man etwas tüftelt:
Code:
DDRA |= 16; // E_INT1 als Ausgang
cli();
while(1)
{
x ^= 16;
PORTA = x;
}
wird so übersetzt:
Code:
DDRA |= 16; // E_INT1 als Ausgang
1bc: d4 9a sbi 0x1a, 4 ; 26
cli();
1be: f8 94 cli
1c0: 90 e1 ldi r25, 0x10 ; 16
1c2: 80 91 e6 00 lds r24, 0x00E6
while(1)
{
x ^= 16;
1c6: 89 27 eor r24, r25
PORTA = x;
1c8: 8b bb out 0x1b, r24 ; 27
1ca: fd cf rjmp .-6 ; 0x1c6 <main+0x12>
Nur noch ein XOR, ein OUT und ein Sprung in der Schleife ergibt 4 Takte oder 2MHz externer Takt für den Tiny. Hab's aber noch nicht versucht, dürfte auch keine wesentliche Veränderung sein.
Gruß
mic
Lesezeichen