Randy B. schrieb:
> Da dieses Verhalten bei TC1 und USART1 (auch ein Pin-Multiplex zwischen
> OC1B und XCK1) so nicht besteht, komme ich zu dem Schluss, dass es ein
> Bug im atmega324pb ist.
Das wäre durchaus denkbar.
Ich habe auch schon den einen oder anderen AVR8-Bug gefunden, der nicht
im DB unter den Errata gelistet war. Allerdings noch nie einen derart
gravierenden. Meistens nur Zeug im (sowieso eher lausig dokumentierten)
Analogkram.
Aber ich würde an deiner Stelle die Hoffnung noch nicht völlig aufgeben.
Es bleiben nämlich noch Freiheitsgrade. So z.B. ein Fehler im
C-Compiler. Den hast du bisher nicht ausgeschlossen. Dazu musst du nur
dasselbe Programm in Assembler schreiben. Die paar Zeilen werden ja wohl
kein Problem sein, oder?
Auch möglich: ein Hardware-Bug, der zwar existiert, aber leicht zu
umgehen ist. Sprich: was passiert eigentlich, wenn du UCSR2C und UCSR2D
explizit mit den gewünschten Werten initialisierst (also mit denen, die
sie nach Reset sowieso haben sollte), nachdem du UCSR2A und UCSR2B
gesetzt hast?
Ach so: wie kommt dein Programm eigentlich auf das Device? Eventuell per
Bootloader? Dann hast du eine Multiplikation möglicher Bugs des jeweils
verwendeten C-Compilers und der des jeweils verwendeten Nutzcodes...
Mittels Programmierung in Asm kannst du ganz sicher eine ganze Klasse
von Fehlern in beiden Störvektoren ausschliessen...