- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Umstieg von Basic -> Assembler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2004
    Beiträge
    14

    Umstieg von Basic -> Assembler

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Mohoin,

    also ich hab mir gedacht meinen AVR (momentan der 2313) etwas effektiver zu nutzen und auf Assembler umzustellen.
    Ich weiß aber nicht so recht wie ich das angehen soll...bisher hab ich mit Bascon AVR programmiert...und dann per ISP das programm rübergeladen...oder halt mit PonyProg das HEX-File das Bascom mir rausgibt...
    Nun steh ich bei Assembler wirklich ganz am anfang...ich hab sozusagen die "allergrundigsten" Grundkenntnisse...das aber auch nur vom 8086 her...mit TurboAssembler...nun zu meinen Fragen: kann ich den TurboAssembler weiterbenutzen ?? Muss ich irgendwelche zusätzlichen Files einbinden ?? Und wie bekomm ich das Assembler-Prog in den AVR ?? Ein HEX-File bekomm ich ausm Turboassembler nicht raus
    Befehle und Register stehen doch quasi alle im Datenblatt, nech ??

    Wär cool wenn mir jemand ein bisschen was dazu erzählen könnte...

    Gruß Kai

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    30.01.2004
    Ort
    Hartenholm
    Alter
    74
    Beiträge
    81
    Hallo Kai,

    ... ist mir gerade so über den Weg gelaufen:
    http://www.mikrocontroller.net/tutorial/

    http://www.avr-asm-tutorial.net/avr_...ner/index.html
    und
    http://www.avrbeginners.net/

    Evtl. hier es Dir ja weiter.


    mfg Gerhard

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2004
    Beiträge
    14
    okay danke erstmal...

    scheinbar muss ich also auf ein Programm wie Atmel-Studio umsteigen...da stell sich eine neue Frage: gibt es ne möglichkeit mit dem Studio die alten STK ISPs zu benutzen ?? Oder eine einfache Möglichkeit aus einem STK200/STK300 einen 500er zu basteln so das das Studio den akzeptiert ??

    Kai

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ich mach das so, daß ich das Pony Gewehr-bei-Fuß geladen haben, und wenn das AVR-Studio ein .Hex erzeugt hat, klick ich auf Pony und lade es damit. Nicht elegant, aber auf irgendwelche Knöpfe muß ich sowieso drücken, also is mit das eigentlich wurst. Das einzige, was micht etwas nervt, ist das ewige "wollen sie wirklich..." vom Pony. Aber bei allen meinen Sorgen kommt das ganz hinten.

    Edit: Noch was: erwarte dir nicht zuviel vom Umstieg. Die Länge der ASCII-Source hat wenig mit der Länge des erzeugten Codes zu tun.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2004
    Beiträge
    14

    soweit so gut...

    Mohoin...da bin ich wieder...

    ich hab mir mal die genannten Links reingezogen...hauptsächlich die Programmbeispiele in Assembler weil was register ect sind wusste ich ja wohl schon...
    nun häng ich beim http://www.mikrocontroller.net/tutorial/ fest...genauergesagt bei den LCD Routinen...das meißte davon kann ich gut nachvollziehen nur die stelle an der das zu übertragende Byte in Nibbles aufgespalten und übertragen wird geht mir nicht in den Kopf...

    im Unterprogramm lcd_command zB soll das Byte 00101000 (befindet sich in temp1) übertragen werden...nun wird da als erstes ein backup von temp1 in temp2 angelegt und dann werden die nibbles mit swap getauscht...aus 00101000 wird also 10000010, richtig ?! Das wird damit begründet das das obere Nibble zuerst übertragen wird seine Datenleitung jedoch an den unteren 4 Bits des Ports angeschlossen sind...als nächstes wird dann das (jetzt) obere nibble auf 0 gesetzt und danach wird das ganze byte (00000010) an den port übertragen...dann geht das spiel von vorne los...nur halt mit dem backup temp2 und ohne swap...übertragen wird also nun 00001000, ist das so richtig ?? Ich weiß garnicht genau wie ich meine frage formulieren soll...ich glaub ich kapier einfach diese 4Bit übertragung nicht... Wenn ich nun nicht die unteren 4Bits vom Port benutzen würde müsste ich swap bei der Übertragung vom zweiten Nibble anwenden anstatt bei ersten ?! Villeicht kann mir ja jmd mal ein bisschen was dazu erzählen

    Achja und eins noch: Im Unterprogramm lcd_init sendet er einige funktionsbytes...zB 4 Bit Modus einstellen...die letzten 3 Bitmuster kann ich nicht einordnen...und er hat die nur mit "nochwas einstellen" ect kommentiert Weiß jmd was genau er da einstellt ??

    Danke schonmal und Gruß

    Kai

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    an diese stelle wird das lcd (das einen eigenen controller besitzt, der die datren entgegennimmt und anzeigt) richtig eingestellt. die dafür genau nötigen befehle findet man im datenblatt des displays... wenn du also die komplette lcd-routine in deine programme einbinden willst ist es nicht weiter wichtig hier genauer bescheid zu wissen... du müsstest dich eigentlich nur näher damit befassen wenn du selbst eine lcd-routine komplett neu schreiben willst...

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2004
    Beiträge
    14
    hollerö...
    ja genau...nur im Datenblatt kann ich das nicht zuordnen !!
    Und doch klar muss ich genauer bescheid wissen: Diese Routinen sind doch auf die Pinbelegung des Programmierers gebunden...ich muss sie ja eh umschreiben wenn ich diese Pinbelegung gerade nicht benutze...aus welchem Grund auch immer...außerdem geht es mir hier nicht darum das Rad neu zu erfinden...ich bin dabei mich in Assembler einzuarbeiten...das zu lernen...und dabei nehm ich sowas nicht so einfach hin...und meinst du nicht auch das jemand der sich Programmierer nennt solche elementaren Sache wie eine LCD Routine selber schreiben können sollte ?!
    Aber egal...ich hätts einfach gerne genauer gewusst

    kai

  8. #8
    im lcd datenblatt ist es wirklich etwas verwirrend...
    bei dem flussdiagramm für die 4bit initialisierung im datenblatt sind ja zwei zeilen pro befehl wobei du jeweils die zahlen in der spalte DB7-DB4 zusammensetzt und du dann das im tutorial angegebene bitmuster erhältst...

    das erste datenpacket stellt die zeilenanzahl und den zeichensatz ein
    das zweite byte schalten das display ein
    und der dritte setzt den entry mode also ob zb. der displayinhalt geschobeb wird...

  9. #9
    zur 4bit übertragung:

    in dem tutorial werden die vier unteren port pins (P3-P0) verwendet und an DB7-DB4 des lcds angeschlossen...
    da zuerst das oberen nibble geschickt werden muss, muss man beim senden von zb. 01010000 eben verteauschen sodass 0101 an P3-P0 anliegt. danach wird dann der im zweiten register gespeicherte original wert verwendet. der braucht nun nicht mehr vertauscht werden sondern kann nach nullsetzten der oberen nibbles direkt auf P3-P0 gelegt werden...

    also würde man die oberen vier ports P7-P4 verwenden müsste man beim ersten mal nichts tauschen aber beim ausgeben des zweiten unteren nibbles....

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    30.01.2004
    Ort
    Hartenholm
    Alter
    74
    Beiträge
    81
    Hallo Kai,
    hier habe ich eine verständliche Anleitung zu LCD's und deren Initialisierung zum 4bit Betrieb gefunden.

    http://www.sprut.de/electronic/lcd/index.htm

    Evtl. hilft esDir weiter.

    mfg Gerhard

    Edit: hier noch ein Tut zum Assembler auf AVR's:

    http://www.avr-asm-tutorial.net/beginner_de.pdf

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen