Hut ab! Tolles Projekt.
Ich hatte ähnliche Überlegungen bei einem anderen Projekt. Also die TWI Schnittstelle läuft als Interrupt, aber im Interrupt selbst sind Wartezeiten drin (bis die entsprechenden Bits gesetzt sind usw...), dies kann Dir Ärger machen in den bisher aufgebauten Routinen, der TWI Interrupt steht zwar fast am Schluss, aber ich weiß jetzt nicht, ob der AVR einen Interrupt (in Deinem Fall den Timer 0 für die Antriebsregelung) unterbricht, wenn ein anderer reinkommt. Der TWI kann auch bis 400 kHz, was eigentlich reichen müßte.
Hast Du mal getestet, wie viel Luft Dein AVR noch hat z.B. Togglebit im Timer auf Oszi gemessen? Wenn hier kaum noch Luft ist, sehe ich die Sache als schwierig an. Dann wäre zu überlegen, einige Aufgaben dem zweiten Kontroller zu übergeben, sprich die Funktionen auf beide Kontroller zu verteilen, dies bricht zwar das Konzept mit der Sensortrennung, würde Dir aber wahrscheinlich etwas Luft verschaffen.
Eine andere Lösung wäre es einen 8 Bit Parallelbus aufzubauen zwischen den Kontrollern -- ohne TWI. Du würdest den einen Kontroller die Daten auf die Leitungen legen lassen und den andere würde sie dann nur am Port abholen, dies ließ sich auch dann über ein Bit einfachst steuern lassen, wenn Du mehrere Daten brauchst, verwendest Du einfach mehr Auswahlbits. (z.B. 3 Bit sind 8 verschiedene Datenbytes). Du mußt natürlich die Eingänge am Hauptkontroller noch freihaben.
Gruss
Volly
Lesezeichen