@ Frank,
ich weiss auch nich was an dem internen Flasher anders sein soll, ich benutze ihn auch und funktioniert auch alles. Nur mit PonyProg funktionierts gerade nicht!
mfg God
Hallo,
noch ein Link mit Bascom AVR Beispielen und den Demodateien
findet man hier http://www.home.fh-karlsruhe.de/~saka0012/.
Gruß
Jörg
@ Frank,
ich weiss auch nich was an dem internen Flasher anders sein soll, ich benutze ihn auch und funktioniert auch alles. Nur mit PonyProg funktionierts gerade nicht!
mfg God
Thomas
bei mir gab es Probleme mit den STK500 und den internen Programmer
es hat einfach nicht funktioniert- ich benutze dafür AVR-Studio
Gruß Thomas
Irgendwie habe ich Probleme mit dem "Wait" Befehl.Do
Portb = I
Incr I
Waitms 300
Loop
Wenn ich z.B. "Wait 1" benutze und ds Programm in Bascom im Simulator laufen lasse, bleibt die Simulation beim Wait komplett stehen.
Bekommt man der Simulation irgendwie beigebracht das Wait warten und nicht Ende heisst?
Wenn ich das Programm in meinen ATMega16 hochlade, wartet der bei "Wait 1" eher 10 Sekunden als eine.
Liegt das vielleicht daran, dass der Controller noch nichts von dem externen Oszilator weiss und der Bascom-Compiler auch keine Ahnung mit welcher Geschwindigkeit mein Controller getaktet wird.
Wenn ja, wie bekomme ich das in den Griff?
Und wenn nein, woran liegt es dann?
Daran wirds vermutlich liegen. Du müsstest die Fusebytes des ATmega16 richtig programmieren, oder einfach davon ausgehen, das er mit 1 Mhz läuft.Liegt das vielleicht daran, dass der Controller noch nichts von dem externen Oszilator weiss und der Bascom-Compiler auch keine Ahnung mit welcher Geschwindigkeit mein Controller getaktet wird.
per $crystal = 1000000 kannst du dem Compiler sagen mit welcher Taktfrequenz der µC läuft.
Hier findet sich auch noch was zu den Fusebytes:
http://www.elektronik-projekt.de/inc...p&contentid=29
Ich vermute, dass der Simulator gar nicht stehen bleibt, sondern das nur sehr lange dauert bis er damit fertig ist.Irgendwie habe ich Probleme mit dem "Wait" Befehl.
Wenn ich z.B. "Wait 1" benutze und ds Programm in Bascom im Simulator laufen lasse, bleibt die Simulation beim Wait komplett stehen.
Bei 1 Mhz Taktfrequenz muss er als erstmal 1 000 000 Befehle des AVRs simulieren. Und das dauert halt...
Deshalb sollte man immer die Warteschleifen bei Simulieren rausnehmen, oder viel besser gar keine benutzten und das ganze über Timerinterrups laufen lassen.
MfG Kjion
Hast Du auch mal "Waitms 300" verwendet? Da ist Angabe ja in Millisekunden. Ich hatte da eigentlich keine Probleme obwohl ich "$crystal = 1000000" auch nicht angegeben hatte
Gruß Frank
Damit bin ich dann beim nächsten Problem.Daran wirds vermutlich liegen. Du müsstest die Fusebytes des ATmega16 richtig programmieren,
Ich habe mir diesen Programmer gekauft: http://shop.mikrocontroller.net/csc_...os=0&saArticle[ID]=32&VID=iwXxOw4uWAlNaJgJ&saSearch[word]=&saSearch[category]=AVR&saSearch[special]=
Laut dem AVR Tutorium kannm man damit "yaap" benutzen um die Programme in den ATMega zu laden.
Damit das mit dem ATMega16 klappt musste ich mir aber eine neue yaap.ini herunterladen. Seitdem ich diese ini habe, klappt die Kommunikation zwischen yaap und dem ATMega16. Allerdings werden jetzt in yaap die Dialoge für die Fusebits nicht mehr angezeigt.
Weisst du ob und wie ich mit dem obigen ISP auch andere Programme zur Übertragung und vor allem zum setzen der Fusebits benutzen kann? Bascom wäre mir am liebsten, aber zur Not tuts auch jedes andere Programm.
Na klasse, ich habs ja immer gesagt, nur Lug und Trug in der ComputerweltBei 1 Mhz Taktfrequenz muss er als erstmal 1 000 000 Befehle des AVRs simulieren.
Wenn das so ist, ist der Wait-Befehl ja mal wieder nur ein Fake und nichts anderes als eine billige Warteschleife.
Auf einem MC sehe ich das ja noch ein, aber der Simulator läuft auf nem PC, da könnte er sich ja schon einen echten Timer schnappen.
Ich habe auf einem 1400 MHz Rechner reichlich lange gewartet und nix ist passiert. Auf dem ATMega16 ging es bei "Wait 1" wenigstens nach ca 10 Sekunden weiter.
Aber vielleicht braucht das blöde Windows ja wieder 1 Millionen Takte um einen Takt vom MC zu simulieren.
Habe ich probiert, aber dann kann ich mir die Simulation auch sparen. So schnell wie der dann durch die Schleife rasselt, kann ich auch nicht lesenDeshalb sollte man immer die Warteschleifen bei Simulieren rausnehmen,
Ich sehe habe zwar Oberarme wie Einstein, aber vom IQ her bin ich eher Arnoldund das ganze über Timerinterrups laufen lassen.
Ich habe gestern das erste mal eine LED an einen MC geklemmt, das erste mal den Bascom Compiler benutzt und das erste mal irgendwas in einen MC geladen.
Bis ich mich an Timerinterupts wage dauerts noch ein paar Monde.
Aber Dank deiner Hilfe weiss ich jetzt, dass mein Problem wohl eher an der Simulator-Software liegt und es nicht nicht's bringt weiter auf meinen PC einzutreten.
hmm, nö. Ich habe den Befehl zwar gesehen, dachte mir aber wenn der nichtmals ne Sekunde stoppen kann, kommt der mit millisekunden erst recht nicht klar.Hast Du auch mal "Waitms 300" verwendet? Da ist Angabe ja in Millisekunden. Ich hatte da eigentlich keine Probleme obwohl ich "$crystal = 1000000" auch nicht angegeben hatte
War wohl dumm gedacht, werde es heute abend mal mit "Waitms" versuchen.
Aber noch eine andere Frage. Ich habe vier billige Taster an die Eingänge geschaltet um da ein bischen mit rumzuspielen.
Die scheinen meinen MC aber auch nicht besonders zu beieindrucken.
Irgendwo im Netz habe ich gelesen, dass man Taster bei Verwendung mit MCs immer entprellen muss.
Bei einer sinnvollen Anwendung leuchtet mir das ja ein.
Aber ich wollte einfach nur in einer Schleife den Eingang abfragen und wenn der 1 ist soll eine LED an einem anderen Port aufleuchten.
Wenn ich da den Taster lang genug gedrückt halte, müsste das doch auch ohne irgendwelche Algorithmen zum Entprellen klappen, oder bin ich da mal wieder auf dem Holzweg?
Irgendwie Suche ich noch nach ein paar wirklich simplen Beispielprogrammen für Bascom ein paar LEDs und ein paar Taster.
Alle Beispiele die ich bisher gefunden habe beschäftigen sich mit Motoren, LCDs, Beepern oder geben irgendwas über den UART auf ein Terminalprogramm aus.
Das habe ich an meiner simplen Grundschaltung aber leider alles nicht dran, weil ich eigentlich nicht vorhatte mit LCDs anzufangen, solange ich nichtmals ne simple LED so ans leuchten bekomme.
Mit der Ausgabe über die serielle auf ein Terminal wird es vermutlich auch nichts geben, solange ich die Fusebits für den externen Oscilator nicht gesetzt kriege.
Probiers doch mal mit PonyProg. ( www.lancos.com ). Ich hab noch nicht mit Yaap gearbeitet, deshalb kann ich nix dazu sagen...
Warum ein Fake ?? Genau das soll der wait Befehl doch machen...Wenn das so ist, ist der Wait-Befehl ja mal wieder nur ein Fake und nichts anderes als eine billige Warteschleife.
Auf einem MC sehe ich das ja noch ein, aber der Simulator läuft auf nem PC, da könnte er sich ja schon einen echten Timer schnappen.
Auf dem PC geht es ja darum das was der µC macht zu simulieren. Und das heißt nunmal, dass der PC erst jeden einzelnen Befehl interpretieren muss. Und das dauert nunmal...
Gibts da nicht so was wie einen Einzelschrittmodus, das also immer nur ein Befehl ausgeführt wird ??Habe ich probiert, aber dann kann ich mir die Simulation auch sparen. So schnell wie der dann durch die Schleife rasselt, kann ich auch nicht lesen
eingentlich schon, es sollte aber auch auf jeden Fall ohne gehen. Du könntest einfach mal hier posten wie du die Schalter angeschloßen hast ...Irgendwo im Netz habe ich gelesen, dass man Taster bei Verwendung mit MCs immer entprellen muss.
Soweit erstmal
MfG Kjion
Habe ich schon, habe ich aber auch nicht hinbekommen.Probiers doch mal mit PonyProg. ( www.lancos.com ). Ich hab noch nicht mit Yaap gearbeitet, deshalb kann ich nix dazu sagen...
Wenn ich da jetzt nichts verwechsle, war das Problem, dass bei Ponyprog zwar steht, dass der ATMega16 unterstützt wird, ich ihn in den Einstellungen aber nicht gefunden habe.
Zusätzlich kommt noch, dass ich nicht weiss, wie ich Ponyprog für meinen ISP einstellen muss.
Deswegen weiss ich nicht obs an den falschen Einstellungen für den MC oder für den ISP oder an beidem liegt.
Weisst du denn, ob Ponyprog den ATMega16 tatsächlich unterstützt und wie ich das einstelle? Wenn ich "nur" noch rausfinden muss, wie ich meinen ISP konfiguriere vereinfacht das die Sache.
Genau das Programm soll das was der µC macht simulieren nicht nachmachenWarum ein Fake ?? Genau das soll der wait Befehl doch machen...
Auf dem PC geht es ja darum das was der µC macht zu simulieren. Und das heißt nunmal, dass der PC erst jeden einzelnen Befehl interpretieren muss. Und das dauert nunmal...
Wenn ich im MC "Wait 1" eingebe soll der Simulator das machen, was der MC auch macht, nämlich ca. 1 Sekunde warten und nicht 10 Minuten.
Nach meinem Geschmack soll sich eine Simulation möglichst ähnlich verhalten aber nicht unbedingt dasselbe machen wie das original.
das wesentliche beim Wait-Befehl ist doch die Wartezeit und nicht die Anzahl der Leerschleifen.
Bei einem Flugsimulator reicht es mir ja auch, wenn der mir den Absturz simuliert, dass ich wirklich abstürze und in Flammen aufgehe wie das Original verlange ich von einem Simulator nicht unbedingt.
Ist aber wohl Geschmacksache
hm jaaa gibt esGibts da nicht so was wie einen Einzelschrittmodus, das also immer nur ein Befehl ausgeführt wird ??
Ich habe aber wie gesagt gestern das allererste mal mit Bascom der Simulation und mit nem MC rumgespielt.
Deswegen gings mir nicht daruum einen Workaround dafür zu finden, dass der Wait-Befehl in der Simulation nichts taugt, sondern ich dachte das funktioniert nicht, weil ich irgendwas falsch gemacht habe.
Habe ich wahrscheinlich auch, den der Befehl ""$crystal = 1000000" fehlt in meinem Programm z.B. völlig.
So wie es im AVR-Tutorium auf www.mikrocontroller.net beschrieben ist.eingentlich schon, es sollte aber auch auf jeden Fall ohne gehen. Du könntest einfach mal hier posten wie du die Schalter angeschloßen hast ...
Ich vermute aber eher, dass ich einfach irgendwas im Programmcode falsch gemacht habe. Sind wie gesagt noch meine ersten Gehversuche.
Ich muss mir das alles mal etwas genauer ansehen.
Lesezeichen