- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 32

Thema: Assembler oder Bascom?

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    43
    Beiträge
    2.474

    Assembler oder Bascom?

    Anzeige

    Praxistest und DIY Projekte
    Hi

    Ich gelte als Einsteiger und bin kein Mathe-Genie, das ist Neuland für mich und arbeiten möchte ich mit einem der ATMega-Reihe.

    Ich will mir demnächst n Testboard zulegen, zum Erfahrungen sammeln und anschliessend direkt mein Wissen bei meinem Projekt anwenden.

    Nach längerem Lesen und suchen in diesem Forum und vielen bei google zu findenen Themen und Seiten stellt sich für mich nun die Frage:

    Assembler oder Bascom?

    Worin liegt genau der Unterschied?
    Was bringt mich tiefer in die Materie des Programmieren?
    Wovon werde ich in Zukunft mehr haben?
    Was ist flexibler?
    Kann man ohne weiteres von einem zum anderen wechseln?

    Vieleicht könnt ihr mir die Richtung weisen

    MFG Andreas

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    36
    Beiträge
    270
    Hallo!

    Der größte unterschied zwischen ASM und Basic ist, dass ASM direkt befehle für den microcontroller sind. die AVR's können so um die 100 befehle.
    BASOM, bzw. Basic ist ein compiler. D.h. Den programmcode den du geschrieben hast, wird in einzelne ASM befehle umgewandelt.

    der große vorteil von ASM ist, dass du genau weisst, was der µC ausführt und du den code sehr klein halten kannst. bei basic hast du ja letztendlich keine ahnung, welche befehle ausgeführt werden, und ob der code wirklich optimal ist, oder sachen enthält, die man auch platz oder zeitsparender machen könnte (meistens tut er das nämlich).

    tiefer in die materie bringen tut dich ASM besser. das weisst du dann wirklich, welche register gerade angesprochen werden oder welche bits du gerade hin und her schiebst.


    meine erfahrung:
    ich bin mit ASM nie wirklich zurecht gekommen. war mir einfach etwas umständlich. Bascom ist mir auch in sofern leicht gefallen, weil ich schon basic kenntnisse hatte und so recht flott komplexere programmgebilde meistern konnte.

    letztendlich musst du wissen, ob du lieber direkt ASM programmierst und etwas mehr hirnen musst, oder lieber etwas sachter anfangen willst und den compiler teilweise für dich hirnen lässt.

    MfG

    Schoko
    Warum bekommen Vegetarier immer eine Extrawurst?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.02.2005
    Ort
    Freiburg
    Alter
    36
    Beiträge
    602
    Worin liegt genau der Unterschied?
    Assebler ist die direkte Programmiersprache für den µC, Bascom übersetzt dein Basic Programm für dich später in Assembler bzw. gleich als Hexfile.
    Da Bascom so übersetzen muss das es auf jeden Fall funktionieren muss ist der Code später nicht gut optimiert. Das heißt längere Ausführungszeiten und ein großes Programm ( Der Atmega8 hat z.B. nur 8KB, in Basic sind die raltiv schnell voll, in Assembler fast unmöglich, zumindest in der Anfangsphase.)

    Was mich bei Bascom ziemlich überascht hat, ist die lange übersetzungszeit, das dauert je nach Programmgröße und Rechnerleistung locker 20sek.
    Bei Assembler geht das meist in weniger als 1sek. (Aber ist natürlich nicht zu vergleichen, Bascom muss ja erst alles in assembler übersetzen)

    Was bringt mich tiefer in die Materie des Programmieren?
    Eindeutig Assembler, da tust du jedes bit sozusagen einzeln setzen und weißt genau was man am µC macht (Wenn man bei großen und komplexen Programmen noch durchblickt....)
    Wovon werde ich in Zukunft mehr haben?
    Ich sag Assembler, wenn du das beherscht bist du der Meister der µC.
    Basic wird ja oft auch als Kinder.gartensprache bezeichnet, aber da halt ich mich mal schön raus...
    Was ist flexibler?
    In diesem Fall Basic.
    Kann man ohne weiteres von einem zum anderen wechseln?
    In Basic so weit ich weiß kein Problem, in Assembler kommts drauf an wie verschieden der µC Typ ist. Wenn man sauber programmiert kann man den COde relativ schnell anpassen (Wenn z.b. Register oder Ausgänge anderst gesetzt werden müssen)
    Hat der µC aber einen anderen Befehlsatz muss man leider das komplette Programm neu schreiben und hat den alten Code nur als Vorlage.
    Aber ich glaub Bascom unterstützt auch nur den einen Atmel Befehlssatz.

    Wenn du spielen wilst: Bascom
    Wenn du ernthaft zu Ergebissen kommen wilst und auch verstehen möchtet was im µC genau vor sich geht : Assembler

    Tipp: Wiso kein C? C hat grob gesagt die Vorteile von Basic und Assembler zusammen. Einzigster NAchteil wenn man nur C lernt, man muss bei zeitkritischen Sachen aufgeben oder Assembler lernen (bei Basic ist man an diesem Punkt schon viel früher angelangt)

    Wenn du kein Hardwarefreak werden möchtest nimm C !
    Wenn doch Assembler.

    Aber meine absulute Empfehlung:
    Zuerst Assembler und dann C

    Viele Grüße,
    Mehto

    ( Bin übrigens noch bei Assembler, hab aber vor irgendwann mal auf C hochzusteigen und beides zu benutzen, komm aber zur Zeit Prima mit Assembler zurecht...)
    -

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    12.02.2006
    Alter
    52
    Beiträge
    60

    Re: Assembler oder Bascom?

    Zitat Zitat von copious
    Hi

    Assembler oder Bascom?

    Worin liegt genau der Unterschied?
    Was bringt mich tiefer in die Materie des Programmieren?
    Wovon werde ich in Zukunft mehr haben?
    Was ist flexibler?
    Kann man ohne weiteres von einem zum anderen wechseln?

    Vieleicht könnt ihr mir die Richtung weisen

    MFG Andreas
    Die Unterschiede von Bascom und Assembler wurden ja schon recht gut erläutert.

    Wovon Du mehr in der Zukunft haben wirst, hängt sehr stark davon ab was Du machen möchtest. Wenn Du eher Zeitkritische Anwendungen (z.B. Videoanwendungen oä.) machen möchtest, musst Du auf Assembler zurückgreifen. Möchtest Du eher Anwenderschnittstellen oder einfache Steuerungen machen, ist C oder Bascom ganz gut.

    Flexibler ist man wenn man Assembler und C kann . Eine unschlagbare Kombination. Mit Bascom, gibt es für AVRs und 8051 (es gibt für andere µC andere Basic Derivate), ist man IMO sehr bedingt flexibel.

    Ohne weiteres wechseln? Man kann sicherlich recht leicht von einer Programmiersprache zu einer anderen wechseln, wobei Assembler da eigene Regeln hat. Allerdings kannst Du das nicht auch auf die µC übertragen. Damit will ich sagen, Du kannst "relativ" leicht von Bascom zu C wechseln. Allerdings sind die Befehlssätze/Register von AVRs und PICs (nur als Beispiel) sehr unterschiedlich. Es ist aber auch nicht unmöglich

    Ich würde Dir empfehlen erst C zu beginnen und dann Assembler. Damit hast Du es anfangs nicht ganz so schwer. Bist aber am Ende sehr schnell am Ziel. Weiterer Vorteil davon ist, beim neuen AVR-Studio 4 sind beide Sprachen schon dabei (kostenlos).

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    43
    Beiträge
    2.474
    Das ja richtig geil erklärt, auch wenn hier die Meinungen teilweise auseinander gehen

    Ich tendiere zu "Assembler"

    Vielen Dank @all

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    54
    Beiträge
    2.806
    ...das Schöne an Bascom sind aber ja die sehr schnellen, sichtbaren Erfolgserlebnisse. Einen Text auf ein Display zu bekommen ist eine Sache von 5 Zeilen, man braucht sich keinerlei eigene Gedanken um Timings und Initialisierungsstrings zu machen.

    ...im Gegensatz dazu steht man allerdings auch sofort auf dem Schlauch, wenn die anzuschliessende Hardware nicht durch die eingebauten Funktionen und Bibliotheken unterstützt wird.

    - auch hier wieder zwei Seiten der Medaille -

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    ..im Gegensatz dazu steht man allerdings auch sofort auf dem Schlauch, wenn die anzuschliessende Hardware nicht durch die eingebauten Funktionen und Bibliotheken unterstützt wird.
    Nein. Das ist leider ein Vorurteil.
    Wenn man ein Datenblatt hat, kann man auch nicht unterstützte Hardware mit Bascom ansprechen.
    Wieso sollte das nicht gehen ?
    Habe ich schon öfter gemacht.
    Wenn man weiß, wie die Hardware anzusteuern ist, ist das meistens problemlos möglich.
    Warum sollte das in C besser gehen ?

    Man sollte die Bascom Leute nicht immer als: "zu doof um eine Hardware anzusteuern" darstellen.

    Klar, ein Anfänger, der sich nie ein Datenblatt ansieht, wird das nicht können und trotzdem mit Bascom Erfolge haben und das ist auch gut so.
    Mit dem Interesse fängt vielleicht das tiefere Nachforschen statt.
    Dann kann man immer noch eintscheiden, ob man Assembler dazunimmt, oder auf C umsteigt.

    Einen Text auf ein Display zu bekommen ist eine Sache von 5 Zeilen
    Ist doch genial, oder ?
    Warum soll ich mich mit mehr abmühen, wenn's auch mit 5 Zeilen geht?
    Coolnessfaktor ?

    Flexibler ist man wenn man Assembler und C kann .
    Oder Bascom und Assembler.
    Bascom erlaubt es, Assemblerbefehle direkt in Basic zu benutzen, oder komplette Assemblerteile einzubinden.

    Der größte Vorteil an Assembler ist für mich die eindeutige Zuordnung von
    Befehl und Zeit.
    Man weiß Mikrosekundengenau genau, was der uC wann macht.
    Die höhere Geschwindigkeit brauche ich nicht unbedingt.
    Muß auch nicht unbedingt sein, daß eine schlechte Assemblerroutine besser läuft als ein Bascom oder C Programm.

    Wenn du ernthaft zu Ergebissen kommen wilst und auch verstehen möchtet was im µC genau vor sich geht : Assembler
    Was bitteschön ist an Basic nicht "ernsthaft" ?


    Gruß
    Christopher

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    12.02.2006
    Alter
    52
    Beiträge
    60
    Zitat Zitat von chr-mt
    Flexibler ist man wenn man Assembler und C kann .
    Oder Bascom und Assembler.
    Bascom erlaubt es, Assemblerbefehle direkt in Basic zu benutzen, oder komplette Assemblerteile einzubinden.
    Oder so Sorry hatte ich nicht mehr dazugeschrieben.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    Einzigster NAchteil wenn man nur C lernt, man muss bei zeitkritischen Sachen aufgeben oder Assembler lernen.

    schwätzer...

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    Weiterer Vorteil davon ist, beim neuen AVR-Studio 4 sind beide Sprachen schon dabei (kostenlos)...

    stimmt nicht.!!!!!!!!!!!!!!!!!!!!!

    das winavr-c muss installiert werden und wird im studio 4 eingebunden.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen