Nabend, hab aktuell ein komisches Problem mit dem Digital Input Disable Register der ATtiny13A: Um noch etwas Strom zu sparen wollte ich für alle ungenutzten Pins die Input Buffer abschalten. In meinem Projekt nutze ich PB0 und PB1 für eine PWM, sind also Ausgänge, PB2 ist unbenutzt und floating, PB3 und PB4 sind Eingänge mit aktivierten Pullups, PB5 ist als Reset mit 10k auf Vcc gelegt. Wenn ich jetzt die Inputbuffer für PB0 (AIN0D), PB1 (AIN1D), PB2 (ADC1D) und PB5 (ADC0D) deaktiviere, ist es als ob die Pullups für PB3 und PB4 nicht mehr aktiv sind und es reicht ein Tippen mit dem Finger an einem der beiden Pins um den Zustand der Pins zu verändern. Schalte ich die Inputbuffer wieder ein (kommentiere die DIDR0 Zeile aus) ist alles absolut stabil. Jemand ne Idee woran es liegt?
1 | DDRB = (1 << DDB1) | (1 << DDB0); |
2 | PORTB = (1 << PB4) | (1 << PB3); |
3 | DIDR0 = (1 << ADC0D) | (1 << ADC1D) | (1 << AIN1D) | (1 << AIN0D); |