Hallo Wollte nur mal eine kleine Anekdote zum besten geben. Hat mich einen geschlagenen Nachmittag gekostet, das herauszufinden. Und zwar habe eine Initialisierung für einen ATmega644 geschrieben, die mir den AD-Wandler im Free-Running mode einstellt. Mehr nicht. Das wollte ich testen, mit AVR-Studio. Hex kompiliert und reingeladen - es funktionierte nicht. Das ADSC-Bit war zwar nach dem Init gesetzt, und die erste Wandlung wurde durchgeführt. Allerdings wurde es nach dem Interrupt nicht wieder neugesetzt (wie es im Free-Running mode sein sollte). Also suchte ich stundenlang an der Initialisierung herum, bis ich auf die Idee kam, das ganze trotz nciht laufender Simulation mal zu flashen - siehe da, es Funktionierte. Weis jemand von den Profis, warum das so passierte? Gibt es noch mehr Ecken, die nicht/schlecht simuliert werden? Hier noch (für die die es interessiert) die genutzte Initialisierung. DDRA &= ~0xff; ADMUX = ( 0 << REFS1) | ( 0 << REFS0 ); ADCSRA = ( 1 << ADEN ) | ( 1 << ADSC ) | ( 1 << ADATE ) | ( 1 << ADPS2 ) | ( 1 << ADPS1 ) | ( 1 << ADPS0 ) | ( 1 << ADIE ); ADCSRB = ( 0 << ADTS2 ) | ( 0 << ADTS1 ) | ( 0 << ADTS0 ); Mit besten Grüßen Martin Zenzes
Ich benutze zwar AVR Studio nicht (weil ich keins der Betriebssysteme benutzen möchte, auf denen es ausschließlich läuft), aber meiner Meinung nach gibt's irgendwo eine (Hilfe?-) Datei, in der dokumentiert ist, was alles nicht simuliert wird.
Hallo Hm, in der Hilfe-Datei steht zwar tasächlich was davon, das der AD-Wandler zum Teil nicht funktionert. Aber nicht explizit, was genau kaputt ist. Naja. Was will man erwarten. Vieles andere funktioniert! Hab dann noch was gesucht (hätt ich mal vorher tun sollen) und den Beitrag "ADC AVR 8535" hier gefunden. Scheint also wirklich so wie vermutet zu sein. Gibt es denn noch andere Hardware-Simulatoren für freiere Betriebsysteme? Welche nutzt du? Welches ist zu empehlen? Jedesmal ne VM hochzufahren, nur um AVRstudio zu starten ist wirklich etwas mühsam...
Martin Zenzes wrote: > Gibt es denn noch andere Hardware-Simulatoren für freiere > Betriebsysteme? Es gibt simulavr und simulavrxx. Zumindest simulavr ist gerade im Bereich der Peripherie-Simulation völlig unterbelichtet, simulavrxx soll da zwar besser sein, aber scheitert irgendwie an der Infrastruktur. Man muss sich da schon ziemlich tief reinknien, bevor man es 1.) überhaupt erstmal gebaut bekommt und 2.) dann auch benutzen kann. Da man aber die Umgebung des Controllers sowieso nur mittelmäßig bis gar nicht simulieren kann, benutze ich Simulationen höchstens mal für paar algorithmische Tests, ansonsten Emulation via JTAG oder debugWire für die Praxis.
Hm. Schade! Dann werd ich mich mal so weiterbehelfen. Aber auf jedenfall Danke für die schnellen Antworten!
Martin Zenzes wrote: > Hm. Schade! > Dann werd ich mich mal so weiterbehelfen. > Aber auf jedenfall Danke für die schnellen Antworten! Hallo, kann das Phänomen bestätigen. Bin an der gleichen Stelle mit einem ATMega168 in der Simulation aufgelaufen. Mein Ausweg: Habe auf den AVR Simulator V2 (Preview) umgestellt. Der hat das Problem nicht. Bin Durch Euren Beitrag drauf gekommen. Danke Martin
Martin Thomas wrote:
> Habe auf den AVR Simulator V2 (Preview) umgestellt.
Sicher sowieso eine gute Idee. Der komplette Digitalteil im V2-
Simulator entspricht systembedingt 1:1 der Hardware. (Nur der
Analogteil muss nach wie vor manuell hinzu gefügt werden.)
Mit VMLab läßt sich der Free Running Mode simulieren. Aber der Timer-triggered Mode geht dort auch nicht :-( Und der AVR Simulator V2 kennt meinen Atmega 32 nicht ... Es ist zum wahnsinnig werden.
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.