- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Ich möchte AVR´s in Basic programmieren

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    16.01.2004
    Alter
    69
    Beiträge
    74
    Anzeige

    E-Bike
    Hallo,

    noch ein Link mit Bascom AVR Beispielen und den Demodateien
    findet man hier http://www.home.fh-karlsruhe.de/~saka0012/.

    Gruß
    Jörg

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.01.2004
    Beiträge
    222
    @ 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

  3. #13
    Gast
    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

  4. #14
    Gast
    Do
    Portb = I
    Incr I
    Waitms 300
    Loop
    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.

    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?

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    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.
    Daran wirds vermutlich liegen. Du müsstest die Fusebytes des ATmega16 richtig programmieren, oder einfach davon ausgehen, das er mit 1 Mhz läuft.
    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

    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.
    Ich vermute, dass der Simulator gar nicht stehen bleibt, sondern das nur sehr lange dauert bis er damit fertig ist.
    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

  6. #16
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    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

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Daran wirds vermutlich liegen. Du müsstest die Fusebytes des ATmega16 richtig programmieren,
    Damit bin ich dann beim nächsten Problem.
    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.

    Bei 1 Mhz Taktfrequenz muss er als erstmal 1 000 000 Befehle des AVRs simulieren.
    Na klasse, ich habs ja immer gesagt, nur Lug und Trug in der Computerwelt
    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.

    Deshalb sollte man immer die Warteschleifen bei Simulieren rausnehmen,
    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

    und das ganze über Timerinterrups laufen lassen.
    Ich sehe habe zwar Oberarme wie Einstein, aber vom IQ her bin ich eher Arnold
    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.

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    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
    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.
    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.

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    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.
    Probiers doch mal mit PonyProg. ( www.lancos.com ). Ich hab noch nicht mit Yaap gearbeitet, deshalb kann ich nix dazu sagen...

    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.
    Warum 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...

    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
    Gibts da nicht so was wie einen Einzelschrittmodus, das also immer nur ein Befehl ausgeführt wird ??

    Irgendwo im Netz habe ich gelesen, dass man Taster bei Verwendung mit MCs immer entprellen muss.
    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 ...

    Soweit erstmal
    MfG Kjion

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Probiers doch mal mit PonyProg. ( www.lancos.com ). Ich hab noch nicht mit Yaap gearbeitet, deshalb kann ich nix dazu sagen...
    Habe ich schon, habe ich aber auch nicht hinbekommen.
    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.


    Warum 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...
    Genau das Programm soll das was der µC macht simulieren nicht nachmachen
    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

    Gibts da nicht so was wie einen Einzelschrittmodus, das also immer nur ein Befehl ausgeführt wird ??
    hm jaaa gibt es
    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.

    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 ...
    So wie es im AVR-Tutorium auf www.mikrocontroller.net beschrieben ist.

    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.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen