Gast
#1019632
Hallo, bei einem Atmega32 soll als Reaktion auf einen Externen Interrupt ein Pin gesetzt werden. Funktioniert soweit auch prima. Allerdings dauert das ganze vom Setzen des Interrupteingangs bis die steigende Flanke am Ausgang auf High-Pegel ist ganze 4µs. Die 4µs passen ungefähr zur länge des von GCC erzeugten Maschinencodes. Das Datenblat sagtt, daß die minimale Reaktionszeit 4 Taktzyklen beträgt. Das wären dann 500ns. Da ist natürlich die Ausführung des eigentlichen Anwendungsprozesses nicht mit drin. Aber für die ganzen Stackoperationen benötigt der compilierte Code alleine deutlich länger, als diese 500ns (weil insgesamt mehr Funktionen als für 4 Zyklen sind). Gibt es irgendwelche Standardverfahren, wie man genau diese Sache schneller machen kann, d.h. Interrupt -> Pin setzen? Evtl. die Sicherung der Register vor den Funktionsaufruf ziehen (wenn man weiß, daß als nächstes nur der interrupt kommen kann)?. Kann man die Vergleichsoperationen irgendwei vorbereiten?
1 | |
2 | |
3 | |
4 | |
5 | |
Assemblercode wird heute nachmittag nachgeliefert. Gruß, Harald
