Ich lass meine Platinen meistens bei Bilex http://www.bilex-lp.com machen.
Die Qualität ist soweit OK und er fertigt auch Einzelstücke und der Preis passt auch.
Lediglich Fräsungen und Langlöcher werden nicht ausgeführt.
Druckbare Version
Ich lass meine Platinen meistens bei Bilex http://www.bilex-lp.com machen.
Die Qualität ist soweit OK und er fertigt auch Einzelstücke und der Preis passt auch.
Lediglich Fräsungen und Langlöcher werden nicht ausgeführt.
Hab mich mittlerweile etwas mit BASCOM auseinandergesetzt.
Ich stolpper jedoch immer wieder über das selbe Problem: den WAIT-Befehl.
Egal was ich für einen Wert eingebe, das Programm bleibt immer dort stehn. Dazu muss ich sagen das ich nur simuliere meine AVRs kommen erst morgen.
Ist das ein Fehler von BASCOM oder überseh ich etwas? Der waitms Befehl funktioniert mehr oder weniger.
Da ich grundsätzlich echt, also mit Hardware oder Hardwarersatz simuliere,
um Peripherie und Peripherieantworten mit einzubeziehen, kann ich zwar
zum Simulator nicht viel sagen. Ich hatte jedoch mal vergessen, die
Taktfrequenz des AVR zu aktualisieren, so dass alles VIIIEEEEL langsamer
lief, als normal. Dadurch war der Wait-Befehl so lang, dass ich einen
Aufhänger vermutete. Also mein Vorschlag, mal die Taktfrequenz
kontrollieren. Schaumal, ob die Waitms-Befehle auch langsamer sind.
VG Micha
Taktfrequenz
Ja ist der. Wie aktualisier ich die Taktfrequenz? Das läuft doch über den Baud und crystal Befehl.
Ein Freund hat mir dazu geraten direkt mit Assembler zu programmieren. Lohnt es sich oder soll ich erstmal mit BASCOM anfangen?
Im Simulator klappt das (Zeitlich) nicht, der Simulator brauch dafür zu viel Zeit. Um trotzdem Simulieren zu können, muss am Anfang vom Programm ein $Sim eingefügt werden und neu Compiliert werden. Dann läuft das Programm durch. :-)Zitat:
Zitat von blackfield
Im realen Programm muss das $Sim natürlich wieder raus.
Gruß Richard
Gruß Richard
Klar, geht die Taktmanipulation in BASCOM. Der crystal-Befehl ist richtig,
jedoch muss der AVR wissen, ob er seinen Quarzoszillator, den internen
freilaufenden Oszillator oder einen externen Takt benutzen soll.
Dies kann man mit den Fuse-Bits festlegen. Ist auch im BASCOM
möglich. Viele AVRs sind im Auslieferzustand auf Freilaufoszillator
eingestellt mit 1000000 Hz (siehe crystal-Befehl). Damit passen dann
auch wieder die Zeiten, WENN es sich WIRKLICH so verhält, jedoch
ca. 1-2 Prozent Ungenauigkeit. VG Micha
Osz
Jetzt macht es Sinn da ich im Simulator ja keine Fusebits setzen kann.
Wie gesagt, ich kenn mich mit dem Simulator nicht aus. Fusebits gehen
ziemlich ins Eingemachte der AVRs. Vielleicht kann jedoch im Simulator
die Taktfrequenz verändert werden? Oder vielleicht noch eine Idee:
Den AVR auf 1000000 Hz setzen und in dem Falle, dass es ein neuer ist,
zumindest beim Atmega8 ist das so, müsste er das annehmen und
dann kann man ja testen, ob z.B Wait 60 auch (ca.) 1 Minute ist.
Oder noch was, mal testen on Waitms 60000 auch 1 Minute ist oder so
ähnlich. Bei diesen Test kann man zumindest nix zerschiessen.
VG Micha
So ein Wait befehl mit einer Sekunde kann im Simulator durchaus ne viertelstunde laufen. Hast Du da auch so lange gewartet?
Gerade bei den großen AVR Controllern läuft die Simulation mit AVR Studio extrem langsam ( je nach PC ).
Bei meinen Simulationen kann ich bei Wartezyklen um oder größer 1 sek locker mal auf die Toilette gehen.
Wen auch der Timer zu wenig anzeigt kanns natürlich auch an der Taktfrequenz liegen.
Wenn das Fil gebuilt ed ist kann man unter DEBUG bei AVR Simulator Options die Taktfrequenz einstellen.
Pass bei der Verkabelung der ISP auf, die ist bei den 64, 128 und 256 Controllern nicht auf den gleichen Pins ( MISO, MOSI und SCK ) wie bei den kleineren Controllern.
Des weiteren solltest Du die ATMEGA103 Compatibility Fuse abwählen und das JTAG Fuse abschalten. Beide sind bei einem neuen Controller ein!
Das sind die Probleme, die die meisten Anfänger haben.
Ich schreib meine Programme aber in "C".
So lange hab ich noch nicht gewartet.
Ich denk mal es liegt am Simulator, ein i7 dürfte da ja keine Probleme haben.
Ich werd mich mal umsehn ob ich einen Fix für das Problem find.