Ich habe bei durchlesen der Lib eine ganz simple funktion gefunden mit der ich wohl weiter kommen werde...

delayCycles();

Das ist zwar ne blockende funktion, aber ich denke mal dass der Chip in den 2,5 ms der pulsgeneration ruhig einmal aussetzen kann, da der Chip dann knapp 18ms bis zum nächsten Puls Zeit hat, um alles andere zu erledigen, finde ich sind 12,5% Auslastung kein problem.

Ich plane in einer funktion alle 18 Servos, meines Hexpods anzusteuern. (folgede Werte sind auf meine Servos bezogen)
400us Pulsdauer sind Minimum und Rechtsanschlag. 10us Pulsdauer mehr entsprechen ungefähr einem Grad. Also Lasse ich zunächst alle Ports High setzen, dann wird nach 400us im 10us Abstand, =160 delay Cycles später, überprüft welche Pulse hier enden und werden abgeschaltet bis er bei 2200us angelangt ist und eigentlich alle Ports low sein müssten. Also werden Nahezu beliebig viele Servos simultan mit verschiedenen pulsen versorgt. Allerdings müsste man die Bearbeitungsdauer, um die Ports abzuschalten noch von den delay cycles abziehen, damit das signal später nicht verfälscht ist. Wie lange mad das dauern, eine if-Bedingung zu prüfen und einen Pin auf low zu schalten? 1-2 cyclen???

Allerding komme ich in Portbedrängnis, denn ich habe nur 6 freie ADCs und 8 freie I/Os also fehlen 4. Ich bin am überlegen welche Pins ich umfunktionieren kann. ich würde ungerne auf I²C und Display verzichten. Die LEDs sind anscheinend mit den LCD Pins doppelt belegt, sonst wäre es ja auch zu einfach, weils genau 4 sind...
Da gibt es also noch Int0, Int1 und Int2. Die sind doch eigentlich überhaupt nicht belegt, die sind nur im XBus system überall verfügbar nicht wahr?(Ich habe sie auch bei der Base nicht belegt)
Fehlt noch einer... im Zweifelsfall baue ich das Mic aus uns nutze den Ausgang.


mfg WarChild