Unterschiede Z80, 8051 und 6502/6510

Basic... *schüttel*

Gruß Henning

Reply to
Henning Paul
Loading thread data ...

Von alten ISA MFM/RLL Controllern von Adaptec kann man mit etwas Geschick den darauf verbauten 8031 nebst Latch und EPROM-Fassung herunterschneiden. Lediglich einen Quarzoszillator muß man noch hinzufügen bzw. einen Quarz an die Beine des uC löten. Ich kann mal ein paar Bilder davon machen und ins Web stellen. Als Monitorprogramm empfehle ich Paulmon

formatting link

Reply to
Peter Heitzer

Henning Paul schrieb:

IBTD. Schon 'mal diesen Dialekt angesehen? IMHO ist der schon naeher an C als an Basic. YMMV aber fuer meine Aufgaben mit den AVRs reicht's locker.

Im Buch kommen Assembler und C keinesfalls zu kurz, die wichtigsten Routinen/Beispiele werden auch in Assembler/C gelistet.

hand fritz.schoerghuber

Reply to
fritz.schoerghuber

Torsten Junker schrieb:

Du kannst dir das aeltere Buch von Andreas Roth ("Mikrokontroller Kochbuch") anschauen, es wird dich sicherlich interessieren.

Nochmal zu deiner urspruenglichen Fragestellung. Die Mikrokontroller arbeiten in der Praxis anders als die Mikroprozessoren. Bei den Kontrollern werden die meiste Zeit eine Handvoll oder mehrere Handvoll Interrupt-Routinen abgearbeitet. Das Hauptprogramm ist bei den kleinen Kontrollern eher bescheiden.

Bei jedem Interrupt muessen einige, moeglichst wenige (wegen des timings!), Register gerettet werden. Meistens befindet man sich vom Hauptprogramm her in einigen Zaehlschleifen. Der 8051er macht das ganz gut, da er ganze Zaehl-Register-Baenke mit einem einzigen Befehl umschalten kann. Dazu kommen die erwaehnten Bit-Manipulationen. Das sind einige der Gruende, warum die 8051er heute noch so weit verbreitet sind.

Rechnen kann der 8051er schlecht. Fuer Gleitkomma-Rechnung muss man schon ganze Unterprogramme schreiben. Das koennen die anderen (Z80 etc.) besser. Das war in Home-Computer Zeiten ein Unterschied, aber heute?

Mit Gruss, Joachim Riehn

Reply to
Joachim Riehn

Basic ist eine Sorte von Programmiersprachen, die aus der Not heraus geboren wurden, kleine 8-Bit-Rechner mit wenig Aufwand so einfach wie möglich programmierbar zu machen. Basic kennt viele sinnvolle Konzepte aus anderen Programmiersprachen nicht; zum Beispiel schon mal keine lokalen Variablen und keine Schleifen wie "repeat ... until" und "do...while". War in den 80ern des letzten Jahrhunderts schon tot.

Holger

Reply to
Holger Bruns

In article , Henning Paul writes: |> Basic... *schüttel*

Ganz ehrlich: Mir isses lieber, wenn jemand in BASIC programmieren kann als wenn er's gar nicht kann.

Ich denke, es hat auch einen Grund, wieso heute vergleichsweise wenige wirklich mit dem Programmieren anfangen. BASIC hatte man recht kurzer Zeit drauf -- und wenn es nicht gerade Commodore-BASIC war, konnte man damit sogar dem Rechner recht bequem Grafik und Sound entlocken und kam somit schnell zu einem Erfolgserlebnis.

Vielleicht ist deshalb Microsofts VisualBASIC so erfolgreich. Jeder kann, wenn er mag -- und im Gegensatz zu C fliegt der Anfängercode einem nicht sofort um die Ohren.

Daß BASIC fürs Leben versaut, daran glaube ich nicht. Schließlich kann man kann auch in C viel unschönes treiben, was garantiert *kein* schöner Programmierstil ist.

Rainer

Reply to
Rainer Buchty

In article , Holger Bruns writes: |> Basic ist eine Sorte von Programmiersprachen, die aus der Not heraus |> geboren wurden, kleine 8-Bit-Rechner mit wenig Aufwand so einfach wie |> möglich programmierbar zu machen.

Ne, is klar. 1963, als BASIC aus der Taufe gehoben wurde, hatte man genau das im Sinn.

Einfachheit, ja. Aber Du läßt das klingen, als wäre es etwa schlechtes.

|> Basic kennt viele sinnvolle Konzepte |> aus anderen Programmiersprachen nicht; zum Beispiel schon mal keine |> lokalen Variablen und keine Schleifen wie "repeat ... until" und |> "do...while".

Ah, es spricht der Erfahrene, der einen halben BASIC-Dialekt gesehen hat und somit auf alle anderen schließt. Was, bitte, ist denn "das" BASIC?

Die Zeit ist seit Dartmouth BASIC durchaus weitergelaufen...

Oder kommt jetzt als nächstes "BASIC ohne Zeilennummern ist nicht BASIC"?

|> War in den 80ern des letzten Jahrhunderts schon tot.

So tot, daß es heute noch eingesetzt wird -- von jeder erfahrenen Sekretärin, die sich VBA-Skripte zusammenstoppelt. Was für die Einfachheit und Attraktivität der Sprache insbesondere für Nicht-Programmierer spricht.

Auch möchte ich nicht wissen, wieviel heute noch im Windows-Umfeld mit VisualBASIC zusammengestoppelt wird. Eben *weil* es einfach und schnell geht.

Rainer

Reply to
Rainer Buchty

"Holger Bruns" schrieb im Newsbeitrag news: snipped-for-privacy@mid.individual.net...

Naja ... 1964 entwickelt, hatte es mit den 8-Bittern, die von Mitte der 70er bis Mitte der 80er ihr "goldenes Zeitalter" hatten, noch nichts am Hut. 1980 gab es schon Basic-Dialekte mit do..while und repeat..until. Habe das 1981 selbst mal auf einer Triumph-Adler Alpha 80 (oder war es doch eine P1?) ausprobieren dürfen.

Aber ich gebe dir insofern recht, als daß viele Homecomputer-Basic-Dialekte soweit kastriert waren, daß ihr Sprachumfang nur noch peinlich war (teilweise fehlende GOSUB/RETURN-Implementierung, kein DATA/READ/RESTORE, keine Matrixoperationen etc...), und das alles, um mit einer Handvoll Kilobytes Speicher auszukommen.

Nichtsdestotroz haben viele der heutigen IT-Verantwortlichen in Unternehmen ihre ersten Programmiererfahrungen mit Basic gemacht.

Joachim

Reply to
Joachim Gaßler

Hallo Stefan, ich kann das Buch "Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie" von Günter Schmitt wärmstens empfehlen. Der erste Teil dreht sich die Assemblerprogrammierung mit sehr guter Hardwarebeschreibung, der zweite Teil um C. Didaktisch sehr gelungen.

Martin

-- DL9CK

Reply to
Martin Wenk

OK, ich entnehme daraus, dass Du den im Buch angesprochenen Basic-Dialekt "Bascom" nicht kennst/angesehen hast. Genau die von Dir angesprochenen Beispiele sind da naemlich expli- zit enthalten. Schau's Dir selbst an:

formatting link

Du solltest Deine Meinung ueberdenken...

hand fritz.schoerghuber

Reply to
fritz.schoerghuber

Das weiß doch JEDER(tm), daß BASIC (es gehört groß geschrieben) nur eine Pauperversion von FORTRAN ist, während hingegen Pascal (kleingeschrieben) die Weiterentwicklung ("ETH Zürich", schon die ersten zwei Buchstaben deuten auf die Evolution hin) von ALGOL ist.

BASIC kann den Subroutinen keine Parameter mitgehen und hat keine lokalen Variablen, das ist ja 'zezzlich! Da ist ja nicht einmal eine absturzgefährdete Rekursion möglich. Nichtmal!

Allein damit wären schon 3,3% von "alles" gesagt. Hände wech von BASIC.

Zeterum zenseo: ich empfehle FORTH.

MfG

--
"5 Köpfe denken in 1 h produktiver als 1 Kopf in 5 h".
Das sagen die 4 Köpfe mehrheitlich, die sich nach der
1-h-Besprechung mit dem 5-h-Einzeldenker selber
auch für Produktive halten.
Reply to
Franz Glaser

Also ich habe Anfang der 80er Basic programmiert. Zuerst Basic auf dem TRS-80, später auf dem PC. Das nannte sich damals GW-Basic und war im Prinzip nicht schlecht.

Irgendwann gabs dann Turbo-Pascal und damit war Basic dann für mich gestorben.

Die weitere Entwicklung bei Basic habe ich dann nur am Rande mitbekommen. Da gabs z.B. den grauenhaften Versuch von Microsoft bei VBA alles einzudeutschen.

Die ganzen Sachen mit Basic ohne Zeilennummern und was es da noch so gab war doch alles nur bei Pascal und C abgekuckt. Ich hab mich da immer gefragt, warum dann nicht gleich Pascal oder C?

Dass Basic bei bestimmten Fehlern nicht rummeckert ist dabei kein Argument für Basic, weil man z.B. durch die automatische Variablendeklaration eklige Fehler bekommt, die man z.B. in Pascal wegen der restriktiven Deklarationsvorschriften praktisch nicht kennt.

Ich bin momentan recht gut zufrieden mit WINAVR.

Und Basic, ganz gleich welcher Dialekt, ist für mich, obwohl ich selber lange damit gearbeitet habe, einfach eine Pfuschersprache.

Trotzdem denke ich, dass Bascom für den Einstieg gar nicht schlecht ist. Man sollte da aber dann nicht stehen bleiben...

Gruß

Stefan DF9BI

Reply to
Stefan Brröring

Holger Bruns schrieb:

Hallo,

und Du kennst allerdings auch aktuelle Basic Versionen nicht...

Bye

Reply to
Uwe Hercksen

So ähnlich war's bei mir auch. Ich bin dann allerdings noch zu C weitergegangen und habe da mein Zuhause gefunden.

Gruß Henning

Reply to
Henning Paul

Am Fri, 05 Oct 2007 12:04:54 +0200 schrieb Henning Paul:

Und ich hänge seitdem dazwischen ;-)

Mit C für Microcontroller und Linux, mit Delphi (Pascal) für Windows.

Lutz

-- Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin auch für Nagios - Nachricht per e-mail,SMS und SNMP:

formatting link
Neu: Ethernetbox jetzt auch im 19 Zoll Gehäuse mit 12 Ports für Sensoren

Reply to
Lutz Schulze

On Fri, 05 Oct 2007 11:23:25 +0200, Martin Wenk wrote in de.sci.electronics:

Na, da bin ich mal gespannt. Ich hab heute nicht nur das Buch von Schmitt, sondern mordern-antiquarisch auch die beiden MCS51-Bücher von Roth bestellt. In Kürze kann ich dann ja mal über meine Eindrücke berichten.

Gruß, U.

Reply to
Ulrich G. Kliegis

Das ist Unsinn. Obwohl ich nicht gerade ein Fan von Basic bin, muß ich da doch mal eine Lanze für VB.net brechen.

Mit den entsprechenden Voreinstellungen (option explicit on und option strict on) ist es so sicher wie jede andere .net-Sprache auch. Es bietet auch alle typischen Konstrukte imperativer Sprachen und alle wichtigen OO-Konzepte.

Der einzige Mist ist, daß man halt nur .net-Code damit erzeugen kann. Das hat aber mit der Sprache selber nur wenig zu tuen.

Reply to
Heiko Nocon

Heute kann man halt nur noch klicken. Vielleicht ist die Maus mittlerweile die groesste Huerde fuer den Einstieg. Manche Leute denken beim Anblick einer Kommandozeile der Rechner sei abgestuerzt ;-)

Genau so habe ich das auch in Erinnerung (seinerzeit auf einem Schneider CPC). Als Kind will man spielen, d.h. man versucht irgendwas buntes/lautes/sinnfreies zu programmieren ;-) Ob die Programmiersprache was taugt ist einem da piepegal [1], hauptsache man kriegt mit den gegebenen Mitteln schnell was hin. Sonst macht es keinen Spass und man hat schnell keine Motivation mehr. Mit dem CPC und seinem BASIC ging das sehr gut, da konnte man z.B. mit einem Freund ein selbergeschriebenes Tron spielen, mit farbiger Grafik und Sound, notfalls sogar mit 2 Joysticks [2]. Die heutige 3D Generation kann sich vielleicht nicht mehr vorstellen wie viel Spass das gemacht hat.

Ack. Das moderne Zeugs ist IMHO alles viel zu abstrakt und kompliziert fuer den Einstieg.

Micha

[1] Da man nur diese eine kennt kann man das eh noch nicht beurteilen [2] QuickShot II Turbo (die roten mit den lauten Mikroschaltern)
Reply to
Michael Baeuerle

"Joachim Riehn" schrieb:

Havard vs. von Neumann wurde ja schon genannt. Natürlich kein zwangsläufiger Unterschied, aber man sollte drauf achten.

Na, das hängt ja nur vom Programmierer ab! So, wie du beschreibst ist es nicht unüblich, es geht aber auch anders, egal auf welcher Plattform...

Die Möglichkeit, einzelne bits, auch I/O rasch zu ändern scheint mir tatsächlich ein wesentlicher Unterschied zu z.B. Einplatinen- Z80 System zu sein. Das ganze I/O ist vereinfacht im Vergleich zu Ansteuerung über UART o.ä.

Vorhandensein mehrerer timer, ausreichend I/O und eingebaute hardware für I2C/SIO, PWM, Capture-compare in Microcontroller bedingt auch einen wesentlichen Unterschied zum nacktem Prozessorsystem. Letzteres hat womöglich nur ein paar UARTS und fertig...

Zum Programmierenlernen ist gen. eingebaute HW nicht so wichtig, die Ansteuerung dieser ist nämlich mit wenigen Zeilen aus dem Datenblatt abgehakt. In der Anwendungspraxis ist Vorhandensein genannter HW natürlich ein wichtiges Argument.

Gravierendster Nachteil kleinster Controller, speziell kleine PIC ist der Mangel an RAM. Dazu kommt separater kleiner Prozessorstack abseits des Datenbus implementiert (also kein pushen oder poppen), manchmal nur drei oder fünf Rücksprungadressen tief. Das ist eine arge Beschränkung! Bei den nicht mehr so ganz superkleinen Controllern ist zuletzt Genanntes aber auch kein Thema mehr.

Nein, die alten Achtbitter genauso. Gilt auch für Fixpunkt, auch da muss man sich passende Routinen selbst schreiben (oder selbst abkupfern *g*).

/Ironie an Im Übrigen: Gleitkomma braucht man nicht, Gleitkomma ist BÖSE und Fixkomma ist GUT für 8-Bitter! :)

Gleitkomma ist für Programmierer entwickelt worden die selbst schwach in Mathe sind und nicht skalieren können. Passend dazu können die Float-bibliotheken dann wiederum nicht korrekt rechnen, so ergänzen sich Bibliothek und Programmierer ausgezeichnet :) /Ironie off

Na gut, wenn man mal viele schnelle Multiplikationen braucht und Genauigkeit der vorhandenen Floatroutinen ausreicht, kann man's vielleicht in Erwägung ziehen auf 8-bit CPU, vielleicht...

Ansonsten baut man sich, gerade auf kleinen Controllern seine eigenen Fixpunktroutinen fix(=schnell) mal auf und dann hat man es beliebig genau, jedenfalls solange der Speicher ausreicht!

Zur Erläuterung: Erinnere mich da an einen BYTE-Artikel von Herrn Steve Jobs, so um '80 war das vielleicht, der hatte mal eben das gesamte RAM (minus ganz weniger bytes) seines Apples als *eine einzige* Zahl definiert und dann mittels iterativem Algorithmus die Berechnung von PI drauf abnudeln lassen. Raus kam die Kreischzahl dann in packed BCD, also rund doppelt soviele Stellen als bytes vorhanden waren (der 6502 hatte spezielle BCD-Routinen).

Fazit: Float sieht nur auf den ersten Blick attraktiv aus, hat ansonsten

*nur* Nachteile!
Reply to
Ruediger Klenner

... ja, so lief das bei mir auch ab, etwa.

Na ja, der Pfuschende ist natürlich der Programmierer, nicht die HLL an sich. Sonst müsste ja jedes Assemblerprogramm Pfusch sein, weil 'die Sprache des Prozessors' ja immer noch schwachbrüstiger ist als das einfachste BASIC.

Daß BASIC damals so schwachbrüstig war lag vor allem daran, dass es intertpetierend auf den Maschinen ablief. Also musste alles an Hochsprachenkonstrukt zur Laufzeit tokenisierbar und ausführbar sein.

Compiler haben es da einfacher, die können sich den Quelltext z.B. erst einmal komplett durchsehen und referenzieren bevor sie mit ihrer Arbeit anfangen.

Als dann die 'Homecomputer' genug Speicher hatten um Compiler laufen zu lassen, wurden die BASICs ja dann logischerweise immer PASCAL-liker... *g*

Reply to
Ruediger Klenner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.