@Klebwax:
Sorry, das sollte in keinster Weise Kritik am Code sein.,
zumal Du völlig recht hast. Der Code ist so richtg.
Ich hab mich durch "temp" verwirren lassen. Dein temp wird ja tatsächlich ausgewertet.
Ich dachte zuerst, das ist so eine Art dummy read.
Da steht der Tastenstatus und es wird auch das NACK gesendet.
Also alles völlig okay.
Zum Problem:
Es ist schon mehrfach bei mir aufgetreten, dass alter Code, der auf verschieden Controllern lief,
plötzlich auf dem ARM nicht mehr lief. Bei mir ARM-Cortex M3
Dazu gehört z.B. atomarer Code. Nur mit Verrenkungen geht das überhaupt.
Das betrifft pre und postincrement, das kann er nicht atomar.
Habe auch I2C Interrupts bekommen mit Status 0xF8.
den gibt es garnicht, das wäre nämlich "idle modus" alles erledigt.
Interrupt Problem, tritt nur mit C-Compiler O3 Option auf. Auch hier ein typisches Cortex-M3 Phänomen
durch die internen Write Buffer.
Da bei HaWe aber schon diverse andere Chips am I2C laufen, müssen es wohl noch andere Problem geben.
Ich tippe auch auf die LIB.
Siro
Lesezeichen