watterott ;title =
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Hallo an alle. Frage was ist besser zum Atmel Programmieren Bascom oder C ?

  1. #1
    Kabelträger
    Registriert seit
    07.01.2017
    Ort
    Wien
    Alter
    38
    Beiträge
    3

    Hallo an alle. Frage was ist besser zum Atmel Programmieren Bascom oder C ?

    Wo ist der Unterschied und wo sind Grenzen gesetzt?
    Bascom kann sehr viel und auch Register einfach setzten.
    Ist Bascom out oder auch nur Glaubenskrieg ?
    Meine Ansicht ist das bei beiden grenzen giebt.
    Wenns in Bascom nicht geht dann gehts auch in C nicht !

    Danke.

  2. #2
    Neuer Benutzer
    Registriert seit
    02.11.2016
    Beiträge
    48
    Na Hallo,

    geh mal in ein Fischresterank und frag den Kellner „was können Sie empfehlen Fisch- oder Hühnersuppe“.

    Bitte.

  3. #3
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    371
    Der Haupt unterschied ist der Preis ein Profi Compiler kann ein Vermögen kosten.
    Und der C Compiler unterstützt mehr Microcontroller.(Devises war ein ungünstiger Ausdruck).
    Geändert von DON (07.01.2017 um 19:49 Uhr)
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  4. #4
    Neuer Benutzer
    Registriert seit
    02.11.2016
    Beiträge
    48
    Zitat Zitat von DON Beitrag anzeigen
    Der Haupt unterschied ist der Preis ein Profi Compiler kann ein Vermögen kosten.
    Und der C Compiler unterstützt mehr Devises.
    Hallo Don,

    nun haut es mich aus den Socken.

    Vorab: Ich habe erst vor kurzen den Einstig ins programmieren gewagt. Erstmall mit U8080 und Assembler. Wahr die beste Lösung den Binärcode dem Controller/Prozessor das „Leben einzuhauchen“.
    Nun kam DOS auf dem Markt und ab V.3.0 dBas. Ja da war ich gut.
    Nun folgten in rasanter Weise die vielen „Hochsprachen“. Immer wieder angenommen die neuste ist die beste.
    Bis ich auch vor kurzen (war wohl 1980) erkannt habe, was willst du, welche Leistung in welcher Zeit muss ein µC erbringen usw. Hatte mittlerweile vergessen. Sind doch nur Schalte die nach Vorgabe auf EIN oder AUS gestellt werden müssen.
    So nun sage ich mal so. Jede Programmiersprache hat Stärken und Schwächen...... Aber wer der beste sein will, muss all die vielen Millionen Schalter mit „Namen“ kennen und auch genau wissen wie lange EIN oder AUS er sein muss.
    Dies packt das menschliche Gehirn in so kurzer Zeit nicht mehr. Also ein Compiler muss her.
    Diese haben hochintelligente Menschen erstellt, aber auch nur aus deren Sicht(welcher Schalter hat Vorrang und welcher nicht)

    Da ich nicht genug Devise auf Lager habe.
    Kann ich mir auch keinen „Profi Compiler“ leisten.

    Gruß der arme BASCOMer

  5. #5
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    371
    Wir wollen uns Ja auch nicht mit der Industrie messen.
    Don't forget wir sind Hobbybastler.
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  6. #6
    Kabelträger
    Registriert seit
    07.01.2017
    Ort
    Wien
    Alter
    38
    Beiträge
    3
    Toll wenn es eine Einfache Sprache geben würde wo man einfach alle Uc Programmieren kann.
    Giebts leider nicht.Ich habs mal mit PICs und Assembler Probiert.Ist schon sehr lange her.War sehr Umständlich und ich hatte Echt Null Ahnung.Aber ich habe mir bischen was gemerkt von der Sprache.Aber mit Bascom hatte ich sehr viel Gelernt.

  7. #7
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    74
    Hallo Stefan,
    ich denke auch, dass wenn es die eindeutig beste Sprache geben würde, wären die anderen längst ausgestorben.
    ASM hat sicherlich einige Geschwindigkeitsvorteile, aber für größere Programme ist mir das doch zu unübersichtlich.
    C ist als Hochsprache da schon wesentlich besser, aber deren Klammern und Pointer und mehrfach um die Ecke denken ist für mein kleines Hirn einfach zu viel.
    Also bleibe ich bei Basic, das ist in meinen Augen wesentlich intuitiver und schneller zu verstehen.
    Und Bascom bringt halt jede Menge vorgefertigter Routinen mit, die es mir schon recht angenehm machen.
    Natürlich gibt es einige Einschränkungen, aber mit den meisten kann ich leben. Und wenn es denn mal gar nicht geht, schreibe ich mir einen Teil selber.
    Halt meine 2 Cent zu dem Thema.

  8. #8
    Kabelträger Avatar von djmsc
    Registriert seit
    09.12.2016
    Alter
    45
    Beiträge
    3
    Hi Basti,

    mir geht es da ähnlich mit den Hochsprachen und Basic ist für mich einfach nur einfach :-) Ich programmiere auch mit Delphi (Pascal) und die Syntax ist Basic sehr ähnlich. Also war und ist Bascom für mich die erste Wahl. Einfache Handhabung, schnell ein erstes "Hallo Welt" programmiert und das alles ohne Vorkenntnisse von einem Mikrokontroller. Klar hat das für einen Anfänger auch Nachteile - man muss sich nicht mehr zwingend mit der Hardware (dem µC) auseinandersetzen weil ja die Software alles für einen übernimmt. Bei Assembler muss man schon wissen welche Register ein µC hat, welche man benutzen kann und welche nicht usw.

  9. #9
    Moderator Avatar von Trexis5
    Registriert seit
    02.11.2016
    Ort
    Neu-Ulm
    Beiträge
    66
    Ich sehe das so:
    Wer Programmiert Sicherheitsrelevante Dinge mit einem Atmel bei dem es zu Personenschäden kommen kann weil der Programmablauf in Bascom zu langsam oder unsicher(offensichtlich nicht ganz durchschaubar) ist?
    Denke keiner.
    Warum ist es dann wichtig das der Programmablauf 5 Prozessortakte schneller ist in ASM?
    Bei einem Display ist es vielleicht von Vorteil wenn der Programmablauf etwas schneller ist, aber ist das immer so?

    Ein schlechter ASM Code ist langsamer als ein Bascom code.

    Beispiel.
    Vor Jahren hatte ich ein Displaycode geschrieben
    Dort gab es eine Auswahl für das Setpixel
    Code:
     If G_erase = 1 Then                                      
       Gl_rstflag = 1
     Else
       Gl_rstflag = 0
     End If
    Das wurde sehr oft angesprungen.
    Ich hatte dann nach hilfe gefragt in einem ASM Forum.

    3 Hilfen das in ASM schneller zu machen sind gescheitert.
    Jeder anscheinend perfekte ASM Code war langsamer. (Zeit gestoppt wenn alle Pixel vom 320x240er Display geschrieben wurden)

    Erst Hilfe 4 war schneller.
    Code:
     LDS R25, {G_erase}                                         'Gosub Chk_erase
     ANDI  R25, 1                                               'alles ausser 1 wegmaskieren
     STS {Gl_rstflag} , R25
    Das heißt für mich, wie bei allen Hochsprachen.
    Der Entwickler der Programmiersprache ist ja nicht blöd. Der macht sich auch seine Gedanken wie man die Operationen schneller machen kann.

    Für mich zählt die Zeit.
    Habe ich Zeit für ein Programm das in Bascom in 1 Tag fertig ist dafür 4 Wochen in ASM zu vergeuden?

    Das ist meine Meinung.
    Gruß Holger
    link zu mir..

  10. #10
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    74
    Hallo Holger,
    ich kenne mich jetzt mit den Feinheiten von ASM nicht wirklich aus.
    Trotzdem würde ich behaupten, dass die beiden Programmteile nicht äquivalent sind.
    Nehmen wir einmal an, sowohl G_erase als auch Gl_rstflag sind als Byte definiert.
    Dann wird Gl_rstflag oben nur genau dann auf 1 gesetzt, wenn G_erase 1 ist.
    Unten sieht das für mich anders aus. Meiner Meinung nach wird dabei Gl_rstflag auf 1 gesetzt, wenn G_erase ungerade ist.
    Und das ist für mich so ein Grund, kein ASM zu benutzen. Es ist genau wie C schwerer zu lesen, weil solche Konstrukte wie in Bascom nicht existieren.
    Sind es Bit-Variablen, ist die ASM Version auch nicht äquivalent, weil dabei dann andere Bit-Variablen gelöscht würden.

    Jetzt kann es in obigen Fall sein, dass G_erase soweiso nur 0 und 1 enthalten kann. In dem Fall würde ich aber das IF weglassen und einfach
    Gl_rstflag = G_erase setzen, bzw direkt mit G_erase weiterarbeiten, falls dies möglich ist. Das ist dann auch wesentlich schneller als mit IF.

    Was man auch häufig übersieht, ist dass man in Bascom auch direkt Register verwenden kann. Wenn also solche Zugriffe für jedes Pixel und dann evtl. noch mehrfach auftreten, lohnt es sich, die Variable entweder permanent einem Register zuzuweisen (auch z.B. mittels alias), oder nur für den jeweiligen Berechnungsblock.
    Dabei sind die Register R0-R31 meistens außen vor, weil Bascom sie für andere Zwecke benutzt.

    Bleiben noch die GPIO Register, die viele neuere Controller haben und natürlich alle Register, die eigentlich einen bestimmten Zweck erfüllen.
    Das geht dann häufig nur, wenn man diese Funktion zumindest im Moment nicht benötigt.
    Dies zahlt sich besonders dann aus, wenn man ein Register mit einer ganz niedrigen Nummer verwenden kann.
    Dort sind die Berechnungen aufgrund weiterer Befehle (z.B. CBI clear bit, SBI set bit) noch schneller.
    Würdest du also deine Variablen oben direkt in einem Register halten, wäre die Verarbeitung noch schneller.

Lesezeichen

Lesezeichen

Berechtigungen

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