Hello, Guest the thread was called1.5k times and contains 39 replays

last post from Targas at the

The Arduino Commodore 64

  • Wohl eher 320x150, weil für volle 200 Zeilen fehlen immer noch 2 kB ... :-D

    Dann lies mal die Projektbeschreibung. Bitmaps werden nicht im RAM, sondern im Flash gespeichert und davon hat der Atmega2560 256kb.

    Mach ich:

    Quote from Projektseite

    "However, when running on an Arduino Mega, we get 6000 bytes of BASIC RAM and a 320x200 pixel bitmap mode. The bitmaps can only be stored in flash memory, so BASIC programs can't change them. Note that there are still no colors, but only black and white."

    Also es ist ein beeidruckendes "Schauwasichkann", keine Frage. Er schreibt ja selbst: "This is of course just an educational fun project." Damit hat es sich dann aber auch, das ist kein C64. Dass man mit Arduinos vorab gespeicherte Bilder aus dem Flash in Schwarzweiß darstellen kann, ist auch beeindruckend, aber halt kein "Biutmap Mode" im Sinne des C64.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Ist es nicht vielleicht ein wenig mit dem C64 vergleichbar?

    Wenn du mal eben etwas schnelles Programmieren möchtest, nimmst du BASIC, welches ja recht einfach ist.

    Wenn es dann aber auf Geschwindigkeit und Präzision ankommt, geht kein weg an Assembler vorbei.


    Nee, so kann man das nicht sehen.


    BASIC ist einfach viiiiel langsamer als Assembler.

    Es gibt viele Dinge, die ich in Assembler machen kann und in BASIC nicht vernünftig laufen würden.

    Umgekehrt kann ich theoretisch in Assembler alles machen das ich in BASIC v2 machen kann.





    Wir vergleichen

    • Arduino mit einem ATmega 328 - Programmierung in der Arduino IDE
    • ein Atmega 328 Board - Programmierung mit GCC


    Es ist derselbe Controller mit exakt derselben Leistung.


    In der Arduino IDE kann ich so programmieren wie die Erfinder es angedacht haben.

    Muss ich aber nicht.

    Es ist alles vorhanden das ich in einer nativen Umgebung auch habe.

    Es gibt alle Definitionen (Register Namen wie PINx, PORTx ...) und alle Möglichkeiten auch in der Arduino IDE.


    Ich kann den selben Code den einer in der nativen Umgebung hat auch in der Arduino IDE kompilieren.

    Und ich kann sogar den nativen Code mit Arduino Klassen mischen (wenn ich weiß was ich tu).


    Also, Arduino hat keine Nachteile per se.

    Ich kann alle Vorteile kombinieren, ohne Nachteile zu haben.


    Ich muss nicht mal die Arduino IDE verwenden.

    Man kann auch klassisch programmieren und das HEX File über ISP einspielen.




    Es gibt keine Nachteile beim Arduino.


    Aber, ich gebe zu, es verführt etwas, unsauber zu programmieren (ich sag nur STRING Klasse).

    Das ist aber generell ein Problem von C++.

  • Ist es nicht vielleicht ein wenig mit dem C64 vergleichbar?

    Wenn du mal eben etwas schnelles Programmieren möchtest, nimmst du BASIC, welches ja recht einfach ist.

    Wenn es dann aber auf Geschwindigkeit und Präzision ankommt, geht kein weg an Assembler vorbei.

    !!! Ich möchte hiermit aber keine was ist besser Diskussion anfangen !!!

    :D

    nein.

    Ich programmiere in Bascom. Auf 8Mhz getatekt hat bisher alles funktioniert wie ich es wollte ;)

  • Ich beschäftige mich seit Jahren mit Atmel Mikrocontroller - da gabs noch kein Arduino und die "tolle" Umgebung, welche für einen Großteil der "Programmierer" wohl aus Copy + Paste besteht, da es ja mitlerweile X fertige Sketches gibt.

    Dich stört also, dass das Arduino-"Ökosystem" dein elitäres Hobby dem gemeinen Pöbel zugänglich gemacht hat? ;)

    so in etwa 😃

    Ich wusste nicht wie ich es formulieren sollte.

    Das ist ähnlich wie mit Geocachen. Als das auf einmal mit Handy ging machte es jeder, und viele wussten auf einmal alles "besser".

    Änlich wie: "Es ist die PLA !!"

    Ist halt so und ich muss mit klar kommen, ab und an nervts mich halt

  • Ich beschäftige mich seit Jahren mit Atmel Mikrocontroller - da gabs noch kein Arduino und die "tolle" Umgebung, welche für einen Großteil der "Programmierer" wohl aus Copy + Paste besteht, da es ja mitlerweile X fertige Sketches gibt.

    Dich stört also, dass das Arduino-"Ökosystem" dein elitäres Hobby dem gemeinen Pöbel zugänglich gemacht hat? ;)

    So böse wollte ich das nicht ausdrücken. Aber das kam mir auch in den Sinn.


    Aber genau das ist ja die Idee des Arduino. Die Zielgruppe waren nicht die Mikrocontroller-Programmierer.

    Du, alles gut :)

  • Ich programmiere in Bascom. Auf 8Mhz getatekt hat bisher alles funktioniert wie ich es wollte ;)

    Ja, BasCom war schon geil. ^^ Das war aber auch eine Art "Arduino", oder? :-)

    Am liebsten hatte ich die PICs, direkt in Assembler. Schön mit krudem Bankswitching und kaputtem MOV-Befehl. :-D


    Jemand hat kürzlich zu mir gesagt: "Wenn du nur einen Hammer als Werkzeug hast, sieht jedes Problem wie ein Nagel aus!" So ähnlich ist das mit den Arduinos auch ... für vieles würde ein ATtiny auch reichen, und gigabyteweise Frameworks installieren für einen Controller mit Kilobytes ... nun ja, wer's mag.


    Insofern, ich hasse sie nicht, ganz und gar nicht, ich liebe sie aber auch nicht unbedingt.


    [/OT]

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Ja, BasCom war schon geil. ^^ Das war aber auch eine Art "Arduino", oder? :-)

    nö.

    Bascom ist ein Compiler, keine fertige Platine, die ich eben nicht haben will ;)

    Und wie du schon sagst - für vieles reicht mir ein AtTiny13 oder 2313.

    Zu 99% reicht mir ansonsten ein Atmega 8.


    Hucky

  • Diddl


    Zitat von Dierch-Jentz Ist es nicht vielleicht ein wenig mit dem C64 vergleichbar?
    Wenn du mal eben etwas schnelles Programmieren möchtest, nimmst du BASIC, welches ja recht einfach ist.
    Wenn es dann aber auf Geschwindigkeit und Präzision ankommt, geht kein weg an Assembler vorbei.


    Nee, so kann man das nicht sehen.


    BASIC ist einfach viiiiel langsamer als Assembler.

    Es gibt viele Dinge, die ich in Assembler machen kann und in BASIC nicht vernünftig laufen würden.

    Umgekehrt kann ich theoretisch in Assembler alles machen das ich in BASIC v2 machen kann.



    Mit schnell Programmieren meine ich doch, das zusammenklöppeln von Befehlen, um schnell ans Ziel zu kommen.

    Was ja bei der Programmierung in der Arduino-IDE so gemacht wird.

    Klar bleibt die Geschwindigkeit und die Größe des Codes bei so etwas auf der Strecke.

    :)

  • nö.

    Bascom ist ein Compiler, keine fertige Platine, die ich eben nicht haben will ;)

    Das weiß ich, ich hab das jahrelang benutzt.

    Aber so von der Einfachheit her und von den Bibliotheken war das schon zumindest der Großvater.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Ich beschäftige mich seit Jahren mit Atmel Mikrocontroller - da gabs noch kein Arduino und die "tolle" Umgebung, welche für einen Großteil der "Programmierer" wohl aus Copy + Paste besteht, da es ja mitlerweile X fertige Sketches gibt.

    Du meinst, professionelle Programmierer arbeiten anders? ;-)



    Im Ernst: Was gibt es bitte daran auszusetzen, wenn jemand sich für ein Hobbyprojekt seine Lösung zusammenkopiert, solange diese Lösung tut, was sie soll? Sobald nichtfunktionale Anforderungen (an z.B. Robustheit, Wartbarkeit, Performance, Lizenzthemen) dazukommen, muss man halt genauer hinschauen und mehr Arbeit investieren.

  • Es gibt keine Nachteile beim Arduino.


    Aber, ich gebe zu, es verführt etwas, unsauber zu programmieren (ich sag nur STRING Klasse).

    Das ist aber generell ein Problem von C++.

    Fast volle Zustimmung: Ich würde sagen, das Komplettsystem Arduino verführt - wie viele moderne Frameworks - dazu, zu programmieren, ohne in letzter Konsequenz zu verstehen was man tut, wie viele Zeit oder Speicher z.B. ein bestimmter Aufruf frisst, solange man nur sein Ziel erreicht. Das liegt nicht so sehr an der Sprache selbst sondern mehr an der Verfügbarkeit entsprechender Bibliotheken "für alles", die man nur noch zusammenstöpselt. Das ist in der Regel ok, denn Entwicklerzeit ist heute viel teurer als Maschinenzeit, nur manchmal tritt es einen dann doch in den Hintern, wenn man nicht weiß, was diese Bibliotheken intern tun.

  • Fast volle Zustimmung: Ich würde sagen, das Komplettsystem Arduino verführt - wie viele moderne Frameworks - dazu, zu programmieren, ohne in letzter Konsequenz zu verstehen was man tut, wie viele Zeit oder Speicher z.B. ein bestimmter Aufruf frisst, solange man nur sein Ziel erreicht. Das liegt nicht so sehr an der Sprache selbst sondern mehr an der Verfügbarkeit entsprechender Bibliotheken "für alles", die man nur noch zusammenstöpselt. Das ist in der Regel ok, denn Entwicklerzeit ist heute viel teurer als Maschinenzeit, nur manchmal tritt es einen dann doch in den Hintern, wenn man nicht weiß, was diese Bibliotheken intern tun.

    Schöner hätte ich es nicht sagen können. Das ist fast schon poetisch. ^^

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Das liegt nicht so sehr an der Sprache selbst sondern mehr an der Verfügbarkeit entsprechender Bibliotheken "für alles", die man nur noch zusammenstöpselt. Das ist in der Regel ok, denn Entwicklerzeit ist heute viel teurer als Maschinenzeit, nur manchmal tritt es einen dann doch in den Hintern, wenn man nicht weiß, was diese Bibliotheken intern tun.

    Und du meinst, wenn man alle Funktionen eines Projektes selber programmiert, dann ist das auf jeden Fall besserer Code als eine Bibliothek, die vielleicht schon seit Jahren erprobt ist. Das ist eine Illusion, dass man selber immer alles besser kann.

    Natürlich fällt man mit fertigen Libs auch manchmal auf die Nase, aber mit eigenem Code passiert das viel häufiger.

  • Und du meinst, wenn man alle Funktionen eines Projektes selber programmiert, dann ist das auf jeden Fall besserer Code als eine Bibliothek, die vielleicht schon seit Jahren erprobt ist.

    Nö. Das habe ich nicht gesagt, und das würde ich auch nie sagen. Bibliothekscode ist für die Aufgabe, für die er spezifiziert wurde, fast immer besser als das, was ich ad-hoc zusammenbauen kann.

    Bibliotheken und, mehr noch, Frameworks, verleiten bloß dazu, aus dem Auge zu verlieren, was ich mir da gerade an Bord hole. Drei Beispiele, jeweils im Kontext Mikrocontroller:

    • Eigentlich will ich bloß einen Text mit zwei Zahlen drin ausgeben. Dafür nehme ich schnell printf ‒ und habe mir gerade ein paar Kilobyte hochoptimierte Parser- und Formatterbibliothek ins Compilat geholt, die ich gar nicht brauche. Kratzt am PC keinen Menschen, aber auf einem kleinen Controller schon.
    • Viele Arduino-Bibliotheken verwenden Fließkommazahlen für Sensorergebnisse, die "natürlich" nicht ganzzahlig sind - Temperatur in °C mit einer Nachkommastelle und sowas - um es dem Anfänger einfach zu machen. Natürlich "tut das", aber man holt sich halt auch die (wunderbar optimierte, aber hier unnötige) Fließkommabibliothek ins Compilat, und wenn man ein bisschen Sammeln / Rechnen möchte, belegt man mehr RAM als nötig und wundert sich, womit der Controller die ganze Zeit beschäftigt ist.
    • Die AVR-Controller haben einiges an On-Chip-Peripherie -- eine serielle Schnittstelle, Schieberegister, Timer für PWM, etc. Wenn einem die nicht reichen oder die entsprechenden Pins schon anderweitig belegt sind, gibt es Bibliotheken, um das gleiche in Software per Bit-Banging nachzubilden. Die sind so wunderschön gekapselt, dass der Anwender u.U. gar nicht merkt, wieviel mehr Last er auf den Prozessor legt.

    Also: Nicht alles selbst programmieren, aber zumindest grob umreißen, was die Bibliotheken funktionial und nicht-funktional tun.

  • Also es ist ein beeidruckendes "Schauwasichkann", keine Frage. Er schreibt ja selbst: "This is of course just an educational fun project." Damit hat es sich dann aber auch, das ist kein C64. Dass man mit Arduinos vorab gespeicherte Bilder aus dem Flash in Schwarzweiß darstellen kann, ist auch beeindruckend, aber halt kein "Biutmap Mode" im Sinne des C64.

    Kann ja alles sein, hat er auch nie behauptet. Ich habe mich auf Deine Aussage "eher 320x150" bezogen und die stimmt halt nicht.


    Also, Arduino hat keine Nachteile per se.

    Ich kann alle Vorteile kombinieren, ohne Nachteile zu haben.


    Ich muss nicht mal die Arduino IDE verwenden.

    Man kann auch klassisch programmieren und das HEX File über ISP einspielen.

    Völlig richtig. Ein Nachteil ist nur die Standard Arduino Library: die will alles so einfach wie möglich machen, auf Kosten der Geschwindigkeit und der Größe der erzeugten Programme. Für den Einstieg und für Trivialaufgaben ist das in Ordnung, aber wenn es auf die Größe ankommt (har har) oder auf Geschwindigkeit, dann geht nichts über direkte Nutzung von GCC oder direkt ASM.

  • Ich habe mich auf Deine Aussage "eher 320x150" bezogen und die stimmt halt nicht.

    Richtig, die stimmt nicht, denn es ist noch nicht mal 320x150 - es ist gar keine Auflösung im Sinne des C64, da überhaupt kein Video-RAM im "Bitmap Mode" vorhanden ist. Wenn, dann ist es im Bitmap-Mode maximal ein Video-ROM.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • und was ist an Ram über, wenn man die .ino für einen " Mega " compiliert?


    Stefan

    Naja der Mega hat auch nicht gar so viel RAM, der hat halt 8K statt 4K.


    Es gibt auch einen Nano (auf 4809 Basis) mit 8K.


    Der Atmega 1284 (der im SD2IEC) hat sogar 16K.

    Und Arduino läuft auch auf dem ...



    Notfalls halt zusätzliches SRAM anschließen.

    Oder gleich eine Lösung mit 6510 CPU und SRAM am Arduino, so wie beim 6502ino ... :D