Hallo,
Danke schon mal für den Hinweis. Es muss natürlich RET heissen. Die Stacktiefe wird nicht überschritten. Die Daten über PB2 werden später von einem Timer Interrupt gestellt. Insgesamt beträgt die Stacktiefe damit 2.
Ich habe die Start Bedigung jetzt so verändert:
Das komische ist, manchmal scheint der Controller durch welche Zufälle auch immer die Start Bedigung zu erkennen. Da mir komischerweise schon zwei ATTiny11 kaputt gegangen sind (sie lassen sich nicht mehr beschreiben) habe ich das Programm mit dem Simulator getestet. Nach meiner Meinung funktioniert der Code!Code:iic_start: ; SDA = SCL = Hi? sbis pinb, 0x00 rjmp iic_start sbis pinb, 0x01 rjmp iic_start ; SDA = Lo, SCL = Hi? __iic_start1: sbic pinb, 0x00 rjmp __iic_start1 __iic_start2: sbis pinb, 0x01 rjmp __iic_start2 ; Eventuell hier Rücksprung zu iic_start? ; SDA = Lo, SCL = Lo? __iic_start3: sbic pinb, 0x00 ; Eventuell hier Rücksprung zu iic_start? rjmp __iic_start3 __iic_start4: sbic pinb, 0x01 rjmp __iic_start4 ; Eventuell hier Rücksprung zu iic_start? ret
Nur in der Praxis sieht es dann wieder anders aus.
Gruß,
Stefan







Zitieren
Lesezeichen