www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik leichter Einstieg in ASM für AVR


Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe beim Googeln das AVR-ASM-Tutorial von Gerhard Schmitd entdeckt.
Sieht interessant aus.

Jetzte will ich selber mal ein paar Sachen in ASM ausprobieren.

Habe allerdings nur Bascom-Erfahrung und einen SP12-Progger (allerdings 
mit eigener Stromversorgung, nicht vom PC).

Bin jedoch auch Bascom-verwöhnt: Programm schreiben, kompilieren, auf 
AVR brennen, geht alles mit Bascom-AVR.

Wie sieht es denn bei ASM aus, gibt es da auch was ähnliches, also 
Editor, Compiler und Brennprogramm (für SP12) in einem?
Wenn ja, was könnt ihr empfehlen?

Autor: MirkoB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm das AVR-Studio. (Gibts auf der Seite von Atmel) Ist sogar ein 
Softwaredebugger mit drin.

Vorteil ist, das man sogar seine Bascom-Hex Files damit einlesen kann 
und debuggen kann... ;) (Und man sieht, was für einen grauenhaften Code 
Bascom manchmal produziert)

Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...

Mirko

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ASM kann das AVR-Studio 4.x . Empfehlen kann ich aber nur originale 
AVR-Programmer. Die werden auch komplett vom AVR-Studio unterstützt. Der 
günstigste mit knapp 40EUR ist der AVR-ISP mkII, der beherrscht alle 
seriellen Protokolle, außer High-Voltage. Damit kann man fast alle 
Megas, Tinys und XMegas programmieren.

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten!

MirkoB schrieb:
> Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...
vom AVR-studio mitgeliefert oder woher?


und kann jemand sagen, ob es reicht, die AVR Studio-Version 4.18 SP2 
runterzuladen, oder ob vorher noch AVR Studio 4.18 installiert werden 
sollte (s.u., link)?

http://www.mikrocontroller.net/articles/AVR-Studio

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Erst AVR Studio 4.18 installieren. Dann SP2.

MfG Spess

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lucas schrieb:
>> Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...
> vom AVR-studio mitgeliefert oder woher?

AVR-Studio liefert Treiber für originale ATMEL-Programmer mit, der SP12 
müßte seine eigenen Treiber haben, aber AVR-Studio unterstüzt den nicht.

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Erst AVR Studio 4.18 installieren. Dann SP2.

Danke!


Travel Rec. schrieb:
> AVR-Studio liefert Treiber für originale ATMEL-Programmer mit, der SP12
> müßte seine eigenen Treiber haben, aber AVR-Studio unterstüzt den nicht.

heißt das, man kann den SP12-Progger nicht unter AVR Studio nutzen?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>heißt das, man kann den SP12-Progger nicht unter AVR Studio nutzen?

Du kannst deine Programmiersoftware vom AVR-Studio aus aufrufen.

MfG Spess

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das heißt es. Du kannst aber das *.hex-File mit AVR-Studio erzeugen 
und dann mit der SP12-Software den Controller brennen, wobei dieser 
Controller dann von der SP12-Software unterstützt sein muß. AVR-Studio 
unterstützt alle aktuellen AVRs.

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Du kannst deine Programmiersoftware vom AVR-Studio aus aufrufen.

dann müsste ich Bascom AVR aufrufen, geht das?

wovor mir grauen würde, wäre, dass ich mit dem eine Programm das 
ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem 
anderen programm wieder aufzurufen, um es dann damit schließlich auf den 
AVR brennen zu können.

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Travel Rec. schrieb:
> und dann mit der SP12-Software den Controller brennen

was meinst du mit SP12-software, gibt es da eine eigene? ich mache das 
immer unter bascom avr.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lucas schrieb:
> was meinst du mit SP12-software, gibt es da eine eigene? ich mache das
> immer unter bascom avr.

Zumindest ist auf der SP12-Homepage davon die Rede. Wenn bascom das 
kann, umso besser.

Lucas schrieb:
> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das
> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem
> anderen programm wieder aufzurufen, um es dann damit schließlich auf den
> AVR brennen zu können.

Da wird Dir wohl nichts anderes übrig bleiben.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben
und testen.

Dazu muß man entweder die Kompilerdirektiven
$ASM

Hier das ASM Programm entragen

$END ASM

benutzen oder vor einen ASM-Befehl ein ! setzen.

MfG Paul

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Lucas schrieb:
>> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das
>> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem
>> anderen programm wieder aufzurufen, um es dann damit schließlich auf den
>> AVR brennen zu können.
>
> Da wird Dir wohl nichts anderes übrig bleiben.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!! 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
!!!!!!!!

nee im ernst, da muss es doch noch andere möglichkeiten geben.
das blöde ist, dass ich grade mal ein bisschen zeit für sowas übrig 
habe, wenn ich jetzt noch einen neuen brenner bestellen muss, ist der 
garantiert erst mitte nächster woche hier...

kann man nicht mit einem Mega8 einen Brenner basteln, der unter AVR 
Studio genutzt werden kann?

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
> Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben
> und testen.
>
> Dazu muß man entweder die Kompilerdirektiven
> $ASM
>
> Hier das ASM Programm entragen
>
> $END ASM
>
> benutzen oder vor einen ASM-Befehl ein ! setzen.

ja, ich weiß, ist eigentlich auch eine coole sache.

allerdings reserviert (soweit ich gehört habe) Bascom vorab schon einige 
funktionen/variablen/register(!?, man korrigiere mich nötigenfalls!)
d.h., man hat dann immer auch Bascom-Ballast mit im Programm.

deshalb will ich lieber direkt in ASM einsteigen

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kann man nicht mit einem Mega8 einen Brenner basteln, der unter AVR
>Studio genutzt werden kann?

Das kann man machen:
http://www.obdev.at/products/vusb/avrdoper.html

Diesen Apparat habe ich mir gebaut und er funktioniert prima mit dem
AVR-Studio zusammen.

MfG Paul

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde das nicht als "leichten Einstieg" bezeichnen.

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt darauf an...

leider finde ich zum AVR-dropper keinen schaltplan.

ich vermute mal, der größere IC auf der platine ist der M8 und der 
kleinere ist ein MAX232...

gibt es das ganze nicht noch ein wenig kompakter?
immerhin benutze ich seit jahren erfolgreich SP12, bin also waschechter 
minimalist.
;)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja - die ganz minimalen Teile unterstützt halt das AVR-Studio nicht...
Es gibt auch noch den hier: 
http://www.embedded-projects.net/index.php?page_id=135
Aber am aktuellsten sind und bleiben immer die Originalprogrammer. Wenn 
Du viel Zeit und Ausdauer hast, bau Dir einen Programmer, wenn Du am 
Wochenende etwas programmieren möchtest, bestell Dir einen AVR-ISP mkII.

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist noch eine abgespeckte Version des AVR-Doper ohne 
HV-Programmier-
möglichkeit:
http://rototron.info/default.aspx?Page=USBAVR/USBAVR.aspx

MfG Paul

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe grade gesehen, dass das AVR Studio auch Brenner für die COM-Dose 
akzeptiert.

Gibt es da nichts einfaches zum Nachbau? M8 und MAX232 habe ich 
vorrätig, mit Logik-ICs siehts leider bis auf ein paar Exemplare in 
meiner Bastelkiste eher bescheiden aus.

HV-Programmierung ist nicht erforderlich...

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: auf die schnelle habe ich noch diesen beitrag hier gefunden:

Beitrag "AVR direkt aus AVR-Studio heraus brennen"
(mit parallelem ISP-Programmer und Ponyprog)


das geht ja schon stark in die richtung...  so ganz verstehe ich zwar 
noch nicht, wie es gemacht wird, aber das kommt hoffentlich noch
;)


ich frage mich außerdem, ob der dort angegebenen parallel-progger mit 
dem 74HC244 im grunde baugleich zum SP12-Progger ist (von wegen 
anschlussbelegung), muss ich später mal gucken.

hier der schaltplan von der 74HC244-version:
http://rumil.de/hardware/avrisp.html

hier rowalt:
http://www.rowalt.de/mc/avr/progd.htm

(falls jemand im vorfeld schon mal gucken möchte)

Autor: hermy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lucas schrieb:
> ...baugleich zum SP12-Progger ist (von wegen
> anschlussbelegung), muss ich später mal gucken.

sieht nicht so aus:

       74hc244 (pp-pin)     rowalt (pp-pin)

sck          6                  2

res          9                  3

mosi         7                  9

miso         10                 11



(ohne gewähr)


der 74hc244-progger hat ausserdem noch zwei leitungen FN1 und FN2 (wofür 
auch immer die sein mögen...)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum einfach, wenn man es auch kompliziert machen kann. Das 
widerspricht dem Thementitel zu 100%. Die nächste Frage lautet dann: 
"Mein AVR geht nicht mehr. Hat das etwas mit den Fuses zu tun? Was 
bedeutet eigentlich RSTDISBL?"

Ich bin ´raus.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn 
das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese 
das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst 
unproblematisch.
AVR-Studio speicher das HEX-File beim assemblieren in seinem 
Projektordner.
Also parallel die Programmersoftware offen lassen und das File aus 
diesen Ordner laden und brennen. Wenn Du jetzt was änderst, muß Du ja 
nach dem assembleiren nur die Programmersoftware nach vorn holen, daß 
gleiche File wieder neu laden und brennen.

Das habe ich jahrelang mit AVR-Studio und Ponyprog so gemacht...

Ansonsten eben USB-AVRLab o.ä zusammenlöten, den Mega8 mit Deinem SP12 
brennen und dann eben das Ding als MK2 aus AVR-Studio benutzen...

Gruß aus Berlin
Michael

Autor: hermy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Travel Rec. schrieb:
> Warum einfach, wenn man es auch kompliziert machen kann. Das
> widerspricht dem Thementitel zu 100%. Die nächste Frage lautet dann:
> "Mein AVR geht nicht mehr. Hat das etwas mit den Fuses zu tun? Was
> bedeutet eigentlich RSTDISBL?"
>
> Ich bin ´raus.

ich auch, zu kompliziert. morgen vormittag geh ich erst mal die enten im 
park füttern...

;)

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. schrieb:
> Hallo,
>
> unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn
> das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese
> das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst
> unproblematisch.

Das habe ich mir eben auch überlegt.

Eigentlich geht es ja erst mal um ASM.

Das mit dem "zwei Programme gleichzeitig benutzen" ist eine gute Idee!!!

Ansonsten habe ich noch den AVRISP MKII entdeckt, der braucht nur einen 
M8 und ein bisschen Hühnerfutter, das aber für später.



Ok, wie bringe ich denn mit dem AVR-Studio die sprichwörtliche LED zum 
Blinken?
Gibt es irgendwo eine Anleitung, wie man im AVR-Studio die ganzen 
Fenster unter Kontrolle bekommt und was man wo wie eingeben muß?

Das Studio hat bei mir natürlich erst mal gemeckert, dass kein 
Programmer anwesend ist...

Autor: Lucas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habe jetzt im AVR Studio den Simulator eingeschaltet und einen Mega8 
ausgewählt.

Dann folgendes Programm eingegeben, es soll ein Brummen (Rechteck) an 
Port B, Bit 0 ausgeben:



.equ c1 = 0 ; Bestimmt die Tonhöhe
  sbi DDRB,0 ; Portbit ist Ausgang
Loop:
  sbi PORTB,0 ; Portbit auf high
  ldi R16,c1
Loop1:
  nop
  nop
  nop
  nop
  nop
  dec R16
  brne Loop1
  cbi PORTB,0 ; Portbit auf low
  ldi R16,c1
Loop2:
  nop
  nop
  nop
  nop
  nop
  dec R16
  brne Loop2
  rjmp Loop




Nach dem Compilieren kommen folgende Fehlermeldungen:

E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(2): 
error: Undefined symbol: DDRB
E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(4): 
error: Undefined symbol: PORTB
E:\Dokumente und Einstellungen\Kleimann\Eigene 
Dateien\zulu\zulu.asm(14): error: Undefined symbol: PORTB

Die Begriffe „DDRB“ und  „PORTB“ (er)kennt er wohl nicht.

Was kann/muss man machen?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Was kann/muss man machen?

Die passende Include-Datei einfügen.

   .include "m8def.inc"

   Progamm

MfG Spess

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Nachtrag: "m8def.inc" gilt natürlich nur für einen ATMega8.

MfG Spess

Autor: hermy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
> Nachtrag: "m8def.inc" gilt natürlich nur für einen ATMega8.
>
> MfG Spess

Ist schon klar ;)

Habe die Datei weggelassen, weil ich ja vorher schon den Atmega8 im 
Studio angeklickt hatte, dachte, das reicht...


werds gleich mal testen.

Autor: hermy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jupps, geht, controller pfeift munter vor sich hin.

Danke an alle!!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.