mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI kann nicht simuliert werden


Autor: Daniela S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche mich gerade daran einen LED Treiber, welcher per I2C 
anzusteuern ist zum laufen zu bringen. Leider scheitere ich kläglich. 
Bei dem Chip handelt es sich um einen TLC59116 von TI, der Controller 
ist ein Atmega8 mit 16MHz Quartz. Mit einer Bascom Software kriege ich 
die Hardware zu laufen, aber Bascom ist mir so unsympathisch. Mein C 
Programm schreibe ich im AVR Studio, womit man es ja auch eigentlich 
simulieren können sollte. Da fangen aber schon die Probleme an. Immer 
wenn mein Programm versucht eine der Funktionen twiStart oder twiSend zu 
benutzen bleibt die Simulation stehen. Ich kann nicht sehen, das der 
Simulator überhaupt in die Funktion rein springt. Ist bestimmt was recht 
einfaches, aber ich komme gerade nicht drauf. Währt ihr also so lieb mal 
drüber zu schauen?

Danke schonmal Daniela

Autor: Daniela S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm keiner ne Idee woran es liegen könnte, daß scheinbar der 
Funktionsaufruf nicht klappt?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne jetzt da ins Detail reinzuschauen, hängt die Simulation des 
Hardware-TWI normalerweise deshalb, weil die Slaves nicht da sind, und 
damit niemals irgendwas vom Bus zurückkommt.
Also Simulation anhalten, und das fehlende Bit in den Registern von Hand 
setzten, dann geht es auch weiter.

"Reinspringen" sollte der Debugger in dir Funktionen aber schon. Hast du 
ohne Optimierung kompiliert?

Oliver

Autor: Daniela S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das mit den fehlenden Interrupt ist mir bewusst. Mein Problem ist 
momentan, daß der Debugger einfach nicht in die Funktion springt. 
Initialisierung vom TWI klappt noch, sobal ich jedoch in die twiStart 
springen will bleibt die Simulation stehen. Sie kommt erst gar nicht bis 
zu der Stelle, wo sie auf den Interrupt warten müsste.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Michael Appelt (micha54)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniela S. wrote:
> Hmm keiner ne Idee woran es liegen könnte, daß scheinbar der
> Funktionsaufruf nicht klappt?

Hallo,

Ansicht Dissassembler aktivieren, dann im Assembler-code durchsteppen.

Gruß,
Michael

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ansicht Dissassembler aktivieren, dann im Assembler-code durchsteppen

Noch besser. Auf den Mega flashen, Gehäuse runterschleifen, und unterm 
Rasterelektronenmikroskop nachschauen, wie die Bits durch den Prozessor 
flitzen.

Wenn das Programm ohne Optimierung (-O0) kompilert wurde, lässt es sich 
auch problemlos im C-Sourcecode debuggen, und bleibt dann bei
while(!(TWCR & (1<<TWINT)));          //Warten auf das Interruptflag;
hängen. Dort hängt es natürlich auch bei eingeschalteter Optimierung. 
Wenn man die Simulation mittels "break" abbricht, findet das Studio bei 
mir auch dann die richtige C-Zeile.

Oliver

Autor: Daniela S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Oliver

du kommst problemlos bis zu der Zeile? Komisch, bei geht der Pfeil der 
die Zeile anzeigt einfach verloren beim Funktionsaufruf. Abbrechen kann 
ich dann die Simulation auch nicht mehr. Ich muss sie erst Resetten um 
den Stop Button drücken zu können. Auch das manuelle Auslösen des 
Interrupt bringt keine Abhilfe.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Komisch, bei geht der Pfeil der
>die Zeile anzeigt einfach verloren beim Funktionsaufruf.

Das tut er bei mir auch, wenn ich bei mit Optimierung per F10 (step 
over) da duchsteppen will. Break im Menu Debug ist aber möglich und 
landet dann auch in der richtigen Zeile.

F11 (step into) springt zwar etwas unmotiviert durch die Funktionen, 
funktioniert aber ansonsten.

Sinnvoller ist das alles natürlich ohne Optimierung.

getestet mit:
AVRStudio V4.16, WinAVR2009xxx, Simulator

Zip doch mal den Projektordner zusammen und stell den hier ein.

Oliver

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.