Liebe Community, ich versuche mit einem Attiny2313 eine RTC über die USI - Schnittstelle (SPI) anzusprechen. Da ich in C programmiere, habe ich den Beispielcode aus dem Datenblatt des µC in C übersetzt. Leider funktioniert das ganze scheinbar nicht. Beim Simulieren ist mir aufgefallen, dass der Bug wohl in der Do-While - Schleife liegen muss. Nur find ich partout den Fehler nicht. Hab hier im Forum auch schon gesucht und bin auf den identischen Code gestoßen. Jemand eine Idee wo mein Fehler liegt? Gruß Micro
Hi >Da ich in C programmiere, habe ich den Beispielcode >aus dem Datenblatt des µC in C übersetzt. Wozu? Gibt es fertig bei Atmel: http://www.atmel.com/dyn/resources/prod_documents/doc2582.pdf http://www.atmel.com/dyn/resources/prod_documents/AVR319.zip MfG Spess
Hey Spess danke für die Links. Das es die Module bereits fertig gibt wusste ich. Allerdings sind die leider sehr veraltet. Die dortigen Bibliotheken gibts nicht mehr und selbst wenn man diese durch die aktuellen ersetzt, lässt sich der Code nicht fehlerfrei kompilieren. Nen paar Sachen hab ich zwar raus gekriegt, aber so tief steck ich leider nicht in der Materie drin um alle Fehler beseitigen zu können. In dem von mir beschriebenen Programm kommt es mir so vor als wenn der µC entweder die Daten nicht sendet oder nach dem Senden das benötigte Flag nicht setzt um zu signalisieren, dass er fertig ist. Ich find nur leider den Fehler nicht... Wahrscheinlich nur ne Kleinigkeit, wie immer =) Gruß Micro
Hi Also der Code im Anhang läuft bei mir auf einem ATTiny24. MfG Spess
hmm das ist ja seltsam. An sich die gleiche Routine. Habs gerade umgewandelt wie bei dir, aber der Simulator hängt immernoch während der while Schleife. Bedingung wird scheinbar nie erfüllt. Lässt sich das im AVRStudio mit dem Simulator etwa nicht simulieren ?
keiner ne Idee wieso die Bedingung zum Schleifenende nie erfüllt ist ?
Hi >hmm das ist ja seltsam. An sich die gleiche Routine. Habs gerade >umgewandelt wie bei dir, aber der Simulator hängt immernoch während der >while Schleife. Bedingung wird scheinbar nie erfüllt. Lässt sich das im >AVRStudio mit dem Simulator etwa nicht simulieren ? Welchen Simulator benutzt du? Im Simulator2 funktioniert es bei mir. MfG Spess
Hey Spess, ich hab deinen Algorythmus gerade mal für den Tiny24 simuliert. Funktioniert. Dann hab ich mein Programm nochmal versucht und dabei bemerkt, das er im Status Register das Counter Overflow Flag nicht setzt. Aus mir unerklärchen gründen nimmt er den USISR = (1<<USIOIF) Befehl nicht. Dann hab ich nochmal versucht deine Methode einzufügen und zu simulieren für den tiny2313.Clock und Miso natürlich angepasst. Gleiches Spiel. Er setzt die Flag nicht. Daher kommt der Algorythmus auch nicht über die Schleife hinaus. Zu guter letzt hab ich den Algorythmus für den tiny2313 auf beiden Simulatoren getestet. Fazit: "Simulator" setzt die Flag nicht, "Simulator2" läuft einwandfrei. Weist du zufällig wo der Unterschied in den beiden Simulatoren ist? Kommt mir irgendwie komisch vor. Da kann ich natürlich lange suchen... Gruß Micro
Hi >Weist du zufällig wo der Unterschied in den beiden Simulatoren ist? >Kommt mir irgendwie komisch vor. Da kann ich natürlich lange suchen... Eigentlich haben sie nur etwas gemeinsam: Sie sind nicht perfekt. Lies dir bitte in der Hilfe zu den Simulatoren die 'Known Issues' und' Simulator Modules' durch. Zum Simulator1 steht da z.B. Universal Serial Interface (USI) USI is not supported Beide Simulatoren sind durchaus brauchbar, man muss nur gewisse Einschränkungen bei den IO-Modulen im Hinterkopf haben. Wenn möglich würde ich aber den Simulator2 benutzen MfG Spess
alles klar. Vielen dank aufjedenfall für die Hilfe. Ich wär nie drauf gekommen, dass es am Simulator liegen könnte. Danke Danke Danke =)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.