Hallo,
ich hatte eine ganze Zeit nur den USB-Task/Process beim XMEGA am laufen, nun habe ich den Ablauf des Programms erweitert und angepasst.
Und habe immer wieder mal beim lesen / schreiben des TWI_E Müll drauf.
(Vieleicht hat das was mit den Stack-Überlauf aus dem anderen Thema zu tun und ist nur ein Nebeneffekt)
Ich werde jetzt zum testen mal den TWI_E abschalten und auf den Software-TWI umsteigen.
Aber nur zum Verständnis, wenn ich Daten lese oder Schreibe habe ich die ganze Zeit immer die Unterbrechung so verhindert:
und
Jetzt habe ich im Handbuch den Hinweis auf Devicelock gesehen
"TWI_DevLockTN"! Verstehe ich das richtig, das damit mein "per Hand lock" unnötig ist und dies im Treiber bereits Verwendung findet? Oder muss ich das zusätzlich irgendwo im DEFINE festlegen?
ich hatte eine ganze Zeit nur den USB-Task/Process beim XMEGA am laufen, nun habe ich den Ablauf des Programms erweitert und angepasst.
Und habe immer wieder mal beim lesen / schreiben des TWI_E Müll drauf.
(Vieleicht hat das was mit den Stack-Überlauf aus dem anderen Thema zu tun und ist nur ein Nebeneffekt)
Ich werde jetzt zum testen mal den TWI_E abschalten und auf den Software-TWI umsteigen.
Aber nur zum Verständnis, wenn ich Daten lese oder Schreibe habe ich die ganze Zeit immer die Unterbrechung so verhindert:
Code
LOCK( MAIN_PROC );
ReadInput(); // Lese Eingangsspeicher
UNLOCK( MAIN_PROC );
ReadInput(); // Lese Eingangsspeicher
UNLOCK( MAIN_PROC );
und
Code
LOCK( MAIN_PROC );
WriteOutput(); // Schreibe Ausgänge zur Hardware
UNLOCK( MAIN_PROC );
WriteOutput(); // Schreibe Ausgänge zur Hardware
UNLOCK( MAIN_PROC );
Jetzt habe ich im Handbuch den Hinweis auf Devicelock gesehen
"TWI_DevLockTN"! Verstehe ich das richtig, das damit mein "per Hand lock" unnötig ist und dies im Treiber bereits Verwendung findet? Oder muss ich das zusätzlich irgendwo im DEFINE festlegen?