Hi, was ist der erste Mikrocontroller gewesen? Waren das schon Bauteile in den Computern in den 60er Jahren oder erst so mit dem C64 oder den Amigas? Oder kann man von Mikrocontrollern und Logikgattern(FGPAs) schon sprechen, seit dem die Transistoren da sind?
Von https://en.wikipedia.org/wiki/Microcontroller#History : "The Smithsonian Institution says TI engineers Gary Boone and Michael Cochran succeeded in creating the first microcontroller in 1971."
Johann L. schrieb: > z.B.: https://de.wikipedia.org/wiki/Intel_4004 Nur daß das kein Mikrocontroller ist.
Alles eine Frage der eh schon recht schwammigen Definition von Microcontroller. Kandidaten gibts da einige. Z.b. - Der AGC in der Block II Variante der Apollo Missionen - AL1 - MP944 - CADC - TMS1000 - GI250 - Intel 4004
Rolf M. schrieb: > Von https://en.wikipedia.org/wiki/Microcontroller#History : > > "The Smithsonian Institution says TI engineers Gary Boone and Michael > Cochran succeeded in creating the first microcontroller in 1971." Der Text ist ja auf englisch :-(, warum gibts den nicht in Deutsch?
Das haben sich die Babylonier vermutlich auch gefragt, als sie vor dem Trümmerhaufen standen.
Rolf M. schrieb: > https://en.wikipedia.org/wiki/Microcontroller#History > TI engineers Gary Boone ... first microcontroller in 1971. TMS-1802-NC, 3000 Bits Programmspeicher, 128 Bits RAM. http://www.circuitstoday.com/microcontroller-invention-history
Nach meinem persönlichern Erleben war es Mitte der 70er der 8048 /8748 bzw. die MCS-48-Familie. Da ging es flächendeckend los, und mit der 51-er-Familie als Nachfolger hat sich das Konzept "Mikrocontroller" dann explosionsartig ausgebreitet.
Die 8048 und 8051 waren bei Bastlern sehr beliebt, da sie auch mit externem EPROM laufen konnten. Ich hatte dann auch 1993 die ersten AT89C51 mit Flash-Programmspeicher gekauft.
CocaCola schrieb: > Der Text ist ja auf englisch :-(, warum gibts den nicht in Deutsch? Weil das geheim ist und nicht jeder verstehen soll. ;-)
Peter D. schrieb: > Die 8048 und 8051 waren bei Bastlern sehr beliebt, da sie auch mit > externem EPROM laufen konnten. Genau, aber in der Industrie und Handwerk schon auch, weil man nicht unbedingt teure maskenprogrammierte Bausteine anfertigen lassen musste, sondern ebenfalls mit den preiswerten externen Speichern arbeiten konnte. Sogar Einzelstücke, Kleinserien, spätere Programmmodifikationen und Updates waren damit plötzlich kein Problem mehr. Das Schönste aber am 8051 war und ist die mächtige Einzelbitverarbeitung - wie gemacht für Steuercomputer aller Art. Dafür liebe ich ihn noch heute. An modernes Multimedia und seine Erfordernisse war damals ja noch nicht zu denken. Peter D. schrieb: > Ich hatte dann auch 1993 die ersten AT89C51 mit Flash-Programmspeicher > gekauft. Ich auch, der Komfortgewinn war phänomenal, denn bevor ich einen eigenen EPROM-Löscher hatte, bin ich in meiner Not sogar in die Sonnenbade- und Bräunungsabteilung der benachbarten Schwimmhalle ausgewichen ;-)
Diodenes schrieb: > Ich auch, der Komfortgewinn war phänomenal, denn bevor ich einen eigenen > EPROM-Löscher hatte, bin ich in meiner Not sogar in die Sonnenbade- und > Bräunungsabteilung der benachbarten Schwimmhalle ausgewichen ;-) grins, der Verkauf von Braeunungslampen muss damals enorm gewesen sein. Vor allem bekam der Begriff Eprom-Brennen einen echten Hintergrund. Zu lange und zu nahe an der "Hoehensonne" und man verbrannte sich nicht bloss die Finger, sondern auch der Chip war teilweise "geroestet". Gruss Asko.
Die erforderlichen Löschzeiten, verbunden mit begrenztem Vorrat an EProms, erzogen aber zu mehr Disziplin beim Programmieren :-) Heute ist man da schon mal etwas grosszügiger. Mein erster ernstzunehmender MC war der 8051. Mit dem 8048 hatte ich nur theoretischen Kontakt.
Der erste wirklich vom Entwickler frei programmierbare Mikrocontroller war der 8048/49 bzw. deren EPROM-Varianten 8748/49 oder die "ROMless" Variante 8035/39. So gesehen würde ich den als ersten "echten" Mikrocontroller bezeichnen. Ich selbst habe mit denen angefangen. Die Befehlscodes waren einfach aufgebaut. Man konnte ohne die Hilfe eines Computers das Programm einfach von Hand schreiben und manuell in den HEX-Code übersetzen. Das ganze dann per Tastatur in ein EPROM-Programmiergerät eingetippt und gut wars. War ein Fehler drin, musste man eben neu probieren. Mein erstes Projekt war eine Steuerung für ein 12Kanal Lichtsteuerpult (Bilder). Das muss so um 1987 gewesen sein. Der handgestrickte Prototyp funktioniert heute noch. Die EPROM-Versionen des Chips kosteten damals um 100,- DM und somit fast ein kleines Vermögen. Gruß Joachim
Hallo als Anschlussfrage: Die ersten µC mit Flashspeicher gab es (für den Hobbyisten) ab 1993? Oder haben die zwei Schreiber nur zufällig im selben Jahr zum erstenmal µC mit Flash Speicher genutzt? Und eine eventuell seltsam klingende Frage die aber durchaus ernst gemeint ist: Wie hat man als Hobbyist ohne beruflichen Hintergrund in der "Vorinternetzeit" gelehrnt einen µC zu Programmieren? War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere "echte" :-) Menschen nicht eine arge Quälerei? Topsi
Topsi schrieb: > War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere > "echte" :-) Menschen nicht eine arge Quälerei? Aber neien :-) Im Gegenteil, die Lektüre des 'Intel Microcontroller Handbook' mit der ausführlichen Beschreibung des Befehlssatzes von MCS48 und MCS51 gaben mir die Ruhe, nochmal ausführlich über das zu lösende Problem nachzudenken. Ausserdem war der Befehlssatz des 8051 eine wahre Freude. Ein grösseres Projekt war damals eine programmierbare Tastatur für den Apple Desktop Bus, da musste man dann allerdings teure Addison-Wesley Bücher heranziehen, in dem dann der Apple Kram beschrieben war: http://www.apple-forever.com/detail/131.html http://www.worldcat.org/title/macintosh-family-hardware-reference/oclc/19126610
:
Bearbeitet durch User
CocaCola schrieb: > Hi, was ist der erste Mikrocontroller gewesen? Waren das schon > Bauteile > in den Computern in den 60er Jahren oder erst so mit dem C64 oder den > Amigas? Oder kann man von Mikrocontrollern und Logikgattern(FGPAs) schon > sprechen, seit dem die Transistoren da sind? Fahr mal nach Paderborn und besuche das Nixdorf Museum. http://www.hnf.de/besucherinfo.html mfg klaus
Topsi schrieb: > Wie hat man als Hobbyist ohne beruflichen Hintergrund in der > "Vorinternetzeit" gelehrnt einen µC zu Programmieren? In Kursen bei den Großrechner-Herstellern wurden zunächst die Spezialisten der Anwender geschult. Dabei entstand zunehmende Übersichtlichkeit über die benötigten Fertigkeiten wie Systemanalyse, Programmstruktur und Befehlsvorrat 1. Selbst große Rechner wurden in Maschinensprache programmiert. Die Assembler für Kontroller mit ihren Mnemonics waren aus diesen anlagenspezifischen Programmiersprachen abgeleitet. 2. Die Fähigkeit, Abläufe in Form von Flussdiagrammen und dgl. zu zergliedern gab es schon lange. Sonst konnte man ja für die Großrechner keine Buchungsprogramme usw. schreiben. 3. Auch der Umgang mit Zahlensystemen ( binär, oktal, hex ,dezimal) war auch schon längst Stand der Technik Als dann später die Mikrokontroller aufkamen, waren die Grundlagen so vereinfacht und strukturiert worden, dass sie auch Hobbyisten mit erträglichem Aufwand zugänglich waren. Vor Allem der 6502 und der 8031 waren schnell zugänglich, da damals eine Fülle neuer Zeitschriften entstand, anhand derer ausreichend Information zur Verfügung stand. Ein VC20 oder ein Z80- Kleincomputer war damals für jeden Bastler der attraktive Einstieg in die neue Technik. Jedermann hatte Zugang zu dem, was bisher nur wenigen Spezialisten an millionenteueren Rechnern vorbehalten war.
Laut Definition ist ein Mikrocontroller ein Mikroprozessor, vereint mit Programm- und Daten-Speicher und IO-Baugruppen in einem Chip, so dass bereits Anwendungen ohne zusätzliche externe Bauelemente (abgesehen evtl. von Taktgeber und einigen passiven BE wie Stützkondensatoren) realisiert werden können. Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben haben.
Topsi schrieb: > Wie hat man als Hobbyist ohne beruflichen Hintergrund in der > "Vorinternetzeit" gelehrnt einen µC zu Programmieren? Bei mir war das vor meiner beruflichen Anwendung so: Ich schrieb damals alle möglichen Halbleiterfirmen direkt an. Die Adressen hatte ich aus Fachzeitschriften, die in der Firma auslagen, wo ich meine Ausbildung machte. In meinem Schreiben bat ich um Datenbücher, Hard- und Softwaremanuals und auch Muster zu Lernzwecken. Fast alle Firmen waren da großzügig. Ich bekam manchmal kartonweise Bauteile und stapelweise Bücher. Z.B. bekam ich von Analog Devices ein Mustersortiment aller gängigen A/D- und D/A-Wandler. Die waren damals extrem teuer! Von Siemens bekam ich Bücher zum 8080, 8085 und den 8048 Mikrocontrollern. Damit ließ sich ohne weiteres programmieren. Ähnlich war es mit dem 8051. Nur war dieser ohne Assembler auf einem Computer wesentlich schwerer zu programmieren. Der 8051 war schon eine Erlösung, konnte der doch endlich multiplizieren und dividieren und auch mehr RAM adressieren. Ich habe gut 10 Jahre lang ausschließlich 8051 benutzt und kannte irgendwann alle Assemblerbefehle in- und auswendig. Gruß Joachim
Topsi schrieb: > War das nur mit Büchern / Zeitschriften ohne unterstützung durch > andere "echte" :-) Menschen nicht eine arge Quälerei? Früher hat man einfach jede Form von Information auf toten Bäumen gehortet. Manche hab ich heute noch, von anderen bin ich, meist durch Frauen, getrennt worden. Um aufzuräumen!? Andere Menschen mit hexadezimalen Neigungen mußte man damals ohne Internet finden, entsprechend gering war die Trefferquote. Und man hat viel länger nachgedacht. Ein typischer Zyklus: - Programm schreiben - hand-assemblieren nach Hex (15km fahren) - Hex in Prommer tippen (5km fahren) - EProm in Maschine stecken - Testen, fluchen, möglichst viel messen und ausprobieren (10km fahren) - nachdenken und nächster Durchlauf. Bald danach kam Turbo-Pascal, wo man mit "Compile" schneller den nächsten Fehler erreichte, als mit den Cursor-Tasten. Das war der Anfang vom Ende des geplanten Programmierens ;-)
Das mit den Datenbüchern etc. von Siemens und Co. kann ich nur unterschreiben. Dort stand ALLES drin, was man wissen musste, inkl. kompletter Listings ganz konkreter industrieller Anwendungen, eigentlich unglaublich. Die zahllosen Elektronikzeitschriften der damaligen Zeit haben letztlich häufig auch nur aus diesen Werken zitiert und damit das Wissen "unter's Volk" gebracht. Trotzdem verdienstvoll. Topsi schrieb: > War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere > "echte" :-) Menschen nicht eine arge Quälerei? Das war schon deshalb keine Quälerei, weil die Assemblersprache des 8051 ein ganz großer Wurf war! Die Entwickler haben sich erfolgreich große Mühe gegeben, eine wirklich gut zu handhabende und in sich weitgehend logische Sprache zu entwerfen. Die einzige kleine Klippe beim 8051 war für manchen vielleicht die Handhabung des Adressraums bzw. Speichermanagement. Wenn man diese wunderschöne Assemblersprache mal mit der anderer Prozessoren vergleicht, dann ... oh je! Dafür ist die Programmierung in beispielsweise C nicht gerade eine Domäne des 8051, aber dafür wurde er nicht entworfen. Es geht aber natürlich trotzdem. Wenn Deine Frage also wäre, was nicht der erste Mikrocontroller war, sonder DER Mikrocontroller schlechthin, dann wäre es für mich ganz eindeutig die MCS-51-Familie. Das Ding ist Käfer, Golf und Corolla in Einem.
Topsi schrieb: > War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere > "echte" :-) Menschen nicht eine arge Quälerei? das schon, aber es war auch ein Abenteuer. Wenn ich mir die Antworten dazu so anschaue würde mich der Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über 50. Nur leicht gedrückt von ein paar Teenys die sich hier die Hausaufgaben machen lassen ...
>Ein typischer Zyklus: Haha, ja genau! Da kommen alte Erinnerungen. Ich hatte 1987 noch gar keinen Computer. Mein Arbeitgeber hatte einen "Kontron" EPROM-Programmer, so ein Mordsteil mit HEX-Tastatur. Also dahem Programm geschrieben und übersetzt, dann am nächsten Tag in der Arbeitspause in den Prommer getippt und EPROM gebrannt. Abends daheim probiert, geflucht, geschaut, neu übersetzt. Am nächsten Tag EPROM in die Lösch-Schublade und in der Pause neu programmiert. Irgendwann lief es :-) Der erste eigene PC/XT "Turbo 10MHz" und ein Universalprogrammer "Hilo All02" war ein Segen. Es gab hin und wieder Treffen mit Gleichgesinnten, z.B. bei und auf der Ham Radio Messe in Friedrichshafen oder der Hobby & Elektronik in Stuttgart. Einmal im Jahr eben.. >ich tippe auf über 50. Ja mei - wie die Zeit halt vergeht.. :-) Gruß Joachim
Walter S. schrieb: > Wenn ich mir die Antworten dazu so anschaue würde mich der > Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über 50. Hm, das glaube ich eigentlich nicht, kommt halt auf die Frage an. Wenn Du freilich fragst, "was habt ihr beim Mauerfall oder bei der Mondlandung gemacht", dann werden dazu klarerweise nicht viele Antworten von Leuten kommen können, die damals noch mit der Trommel um den Christbaum gesprungen sind. Kein Drama. Das Forum ist schon sehr schön gemischt. Und sogar auf Fragen außerhalb des Mikrocontrolleruniversums gibt es hier regelmäßig sehr brauchbare Antworten... ;-)
Für mich war damals in den 80er Jahren der 8048, der "Erste". Da ich damals noch keinen PC hatte, nur einen HP-71B Handrechner, schrieb ich mir in HP Basic meine eigene Werkzeuge. So enstand ein Assembler und Disassembler und andere Werkzeuge. Alles mußte auf einem alten Zentronics Drucker der 40kg+ wog und sich wie ein Düsenflugzeug beim Lauf anhörte, ausgedruckt werden im 5x7 Matrix Format. Dann mußten die HEX Daten per Hand in ein EPROM geladen werden. Umständlich war das ganze schon... Da tut man sich heutzutage in jeder Hinsicht schon viel leichter und jedermann hat prinzipiell Zugangsmöglichkeit. Damals war diese Technik wirklich nur in der Industrie zu finden mit ihren teuren Werkzeugen über die man als Angehender Technik Interessierter nur träumen konnte.
>ich tippe auf über 50.
Naja, wer den 8048/35/39 noch zu seinen Hoch-Zeiten selbst benutzt hat,
der ist eben inzwischen auch rund 35 Jahre älter. Aber das hat nichts zu
bedeuten, außer, daß man nicht jedem Hype nachrennt und auch manche
"Revolution" irgendwann früher schon mal gesehen hat. Eigenschaften, die
einer, der bei Verkaufsstart dieses MCs noch nicht mal geplant war,
verständlicherweise nicht haban muß. Dazu noch das ungute Gefühl, daß
die Zeit knapper wird. Aber das wird jeder selbst erleben.
In den 70ern war Fairchilds F8 die wohl meistverkaufte 8-Bit Mikrocontroller-Serie. Kenner des davon inspirierten 8048 werden gewisse Ähnlichkeiten erblicken, was aufgrund der Personalhistorie von Intel allerdings nicht weiter verwundert. Den F8 kennt heute kein Aas mehr, was man nicht unbedingt bedauern muss. Der hatte in der ersten Generation die Besonderheit, aus mindestens 2 Chips zu bestehen: Einem ALU/RAM-Chip und einem oder mehreren PC/ROM-Chips - jeder Chip mit Programmspeicher hatte eine eigene Kopie des Program Counters an Bord. Programmierung im Entwicklungssystem war vergleichsweise einfach, weil es Programm-Chips gab, die an Stelle eines internen Mask-ROMs extern angeschlossene EPROMs, SRAMs oder sogar DRAMs unterstützten. http://hcvgm.org/Static/Books/F8%20User's%20Guide%20(1976)(Fairchild)(Document%2067095665)-1.pdf
:
Bearbeitet durch User
Heiko Jakob schrieb: > - Der AGC in der Block II Variante der Apollo Missionen Den würde ich eher als Makrocontroller bezeichnen. ;-) Für Mikro war er als Gattergrab zu gross und viel zu hungrig.
:
Bearbeitet durch User
CocaCola schrieb: > Der Text ist ja auf englisch :-(, warum gibts den nicht in Deutsch? Weil das ganze Thema von englischer Sprache geprägt ist. Klingt hart, aber wer sich mit diesem Thema auseinander setzen will, der muss sich mit Englisch anfreunden. Wenn du mit dieser Sprache über Kreuz bist, dann solltest du dir vielleicht fairerweise auch einen anderen Namen suchen. ;-)
:
Bearbeitet durch User
Ich hab auch mit dem 8048 angefangen. Die Eproms dafuer hab ich mir auf einer selbstgefaedelten Steckkarte im Apple][+ gebrannt. Software in Mbasic unter CP/M selber geschrieben. Geloescht habe ich die Teile mit einer 250HQL Birne wo ich das aeussere Glas abgemacht hatte. Damit konnte man auch gleich Platinen belichten und aus meinem Kinderzimmer kam immer ein gesunder Ozonduft. :-D > Wie hat man als Hobbyist ohne beruflichen Hintergrund in der > "Vorinternetzeit" gelehrnt einen µC zu Programmieren? > War das nur mit Büchern / Zeitschriften ohne unterstützung durch > andere "echte" :-) Menschen nicht eine arge Quälerei? Zum einen gab es mehr und bessere Fachzeitschriften. (z.B Elrad, die fruehen c't) Zum anderen hab ich auf Amateurfunkmaerkten alles an Datenbuechern gekauft was ging. Ausserdem gab es es vor dem Internet schon andere Netze. (Z-Netz, Fido, Magic) Da wurde auch viel verschoben. Ich hab z.B immer noch den hier auf der Platte: [olaf] ~: tasm TASM Assembler. Version 2.9.2, May, 1992. Copyright (C) 1985-1992 by Speech Technology Incorporated tasm: No files specified. tasm -<nn> [-options] src_file [obj_file [lst_file [exp_file [sym_file]]]] Option Flags defined as follows: -<nn> Table (48=8048 65=6502 51=8051 85=8085 80=z80) (68=6800 05=6805 70=TMS7000) (3210=TMS32010 3225=TMS32025) Der kam also 1985 raus und damit konnte man dann 8048 und 8051 programmieren. Am Anfang unter CP/M, spaeter dann unter Linux 0.94a. (Linux auf vier Disketten!) Ich glaube man musste 5 oder 10$ im Brief nach Amerika schicken und bekam dann irgendwann eine Diskette mit dem Sourcecode. Davor musste man Memnonics im Kopf in Hexcodes uebersetzen und die relativen Spruenge von Hand berechnen. Ich bin dann an der Uni mal durch eine Klausur gefallen weil der Prof meinte ich haette abgeschrieben. Dabei hab ich nur nicht verstanden das man bei Hex-Dez umrechungen/berechnungen auch einen Rechenweg hinschreiben soll. Ich dachte es reicht wenn man nur die Loesung hinschreibt. :-) Man sieht, manches ist heute einfacher geworden. Andererseits wenn ich heute nochmal 16Jahre alt waere und dann als erstes so einen absurd zusammengehusteten Dreck wie Eclipse zu sehen bekommen wuerde, wer weiss ob ich dann nicht was anderes gemacht haette. Es ist heute kein Problem an jede beliebige Information zu kommen, allerdings ist die notwendige Lernkurve viel steiler. Olaf
Olaf schrieb: > Ich glaube man musste 5 oder 10$ im Brief > nach Amerika schicken und bekam dann irgendwann eine Diskette mit dem > Sourcecode. Das hat bei mir nie geklappt. Die Mäuse hab ich zwar rübergeschickt, aber habe von Speech Tech. nie was gehört. Allerdings habe ich jetzt trotzdem Version 3.1 von TASM, der lustigerweise durch den TMS32025 letztes Jahr wieder in Benutzung kam.
:
Bearbeitet durch User
Und ich dachte, 8048 sei ein Lego Bausatz. Den hab' ich sogar :-) Ich habe auch den "ersten" übersprungen und mit dem 8051 angefangen.
Ein Kollege hatte ein deutsches Valvo-Datenbuch über den 8051, damit habe ich angefangen. Daneben gab es noch ein gutes Datenbuch von AMD und dann später das IC20 von Philips. Ich kann mich nicht erinnern, daß da Fragen offen blieben oder gar Fehler drin waren. Was man heutzutage als PDFs hinterhergeworfen kriegt, ist mit der Qualität der alten Datenbücher überhaupt nicht zu vergleichen.
Peter D. schrieb: > Ich kann mich nicht erinnern, daß da Fragen offen blieben oder gar > Fehler drin waren. Bei den Atmel-8051ern waren die Errata-Sheets manchmal von stattlicher Länge, und das dann auch noch in der zigsten Revision ;-) Peter D. schrieb: > Was man heutzutage als PDFs hinterhergeworfen kriegt, ist mit der > Qualität der alten Datenbücher überhaupt nicht zu vergleichen. Vor allem war da alles Wichtige meist in einem einzigen Schinken versammelt. Heute ist das oft etwas unübersichtlicher. Die Qualität war über die Zeit aber auch nicht immer konstant. Was Philips teilweise aus den alten Valvo-Informationen gemacht hatte, war teilweise schon arg traurig, und oft voll mit verheerenden Flüchtigkeitsfehlern. Trotzdem ist die Lage heute auch nicht gerade schlecht, eher im Gegenteil. Google & Co. spucken heute in Sekundenschnelle Datenblätter aus, von deren schierer Existenz man früher erst nach tagelangen Telephonaten überhaupt etwas ahnte. Und dann hatte man sie aber noch längst nicht...
Heute gibt's bessere Technik aber keine gute Programierer mehr, oder wenig davon. Das ist halt das Problem weil der Mikrocontroller kann sehr gut sein aber er tut nichts ohne ein Program. Deswegen sollte die Industrie leichter zu programierende Mikrocontroller entwickeln. Das haben die schon teilwese gemacht, Z.B PIC18 Serie, aber es sollte noch leichter werden.
> Ich habe auch den "ersten" übersprungen und mit dem 8051 angefangen. Sei dankbar! Der Grund warum so mancher alter Knacker immer noch an den MCS51 haengt ist die Erinnerung an das Gluecksgefuehl das man beim Umstieg von MCS48 auf MCS51 empfunden hat. :-) > Ein Kollege hatte ein deutsches Valvo-Datenbuch über den 8051, damit > habe ich angefangen. Und es war in Deutsch! Es traut sich ja keiner mehr zuzugeben aber es gibt viele in unserem Land die sich erstmal mit English schwer tun. Besonders wenn man noch 15 oder 16 ist und man sowieso mehr an Technik als an Sprachen interessiert ist und in einer neuen Sprache etwas neues lernen soll. Ich halte die Englischfixierung fuer einen grossen Fehler der uns viel Geld kostet. Da sind uns die Franzosen oder Japaner vorraus. Fuer Japan uebersetzt jeder Hersteller alle seine Datenblaetter auf Japanisch oder sie verkaufen da nichts. > Trotzdem ist die Lage heute auch nicht gerade schlecht, eher im > Gegenteil. Stimmt. Heute kann ich alles an Datenblaettern sofort bekommen. Allerdings habe ich den Eindruck das sie keiner mehr liesst. Jedenfalls nicht der Nachwuchs. Vermutlich muss man erst etwas bezahlen und einen 20kg Rucksack vom Amateurfunkflohmarkt nach Hause tragen damit man das Wissen darin zu schaetzen weiss. Andererseits hat das Erratasheet zum STM32F103 genauso viele Seiten wie frueher das Datenblatt des gesamten Controllers. Es ist also nicht alles besser geworden. :-) > Heute gibt's bessere Technik aber keine gute Programierer mehr, oder > wenig davon. Also das halte ich mal fuer Bullshit. Es gab frueher genauso viel schlechte Programmierer wie heute. Nur sind die nicht so aufgefallen weil auch ein bloedes Hirn einen Controller mit 2k Eprom und 64Byte Ram spaetestens nach dem dritten Versuch ans laufen gebracht hat. Ausserdem wurde man durch den Eprom/brennen/loeschen Zyklus gleich mal ordentlich erzogen. Aber ich kann mich ja wohl kaum beschweren das mein Controller heute 100x mehr Resourcen und Leistung hat als mein Entwicklungsrechner von 1985. > Deswegen sollte die Industrie leichter zu programierende > Mikrocontroller entwickeln. Keine Sorge. Die Applesierung der Welt schreitet voran. Ich bin mir sicher das bald die Doedel einen Pythoninterpreter auf ihre Controller installieren und dann uns erzaehlen wie toll das doch sei. Olaf
Olaf schrieb: > Ich halte die Englischfixierung fuer einen grossen Fehler > der uns viel Geld kostet. Da sind uns die Franzosen oder Japaner > vorraus. Fuer Japan uebersetzt jeder Hersteller alle seine Datenblaetter > auf Japanisch oder sie verkaufen da nichts. Das sehe ich auch so. Zumal es sich ja um technisches Englisch handelt. Hatte mich mit dem Sohn einer Freundin über Englisch unterhalten, er war ein halbes Jahr in Amerika. Klar, er kannte einige Begriffe oder Redewendungen die ich nicht kannte, aber washer oder screwdriver, um mal zwei einfache Wörter zu nennen, die kannte er nicht. Dennoch haben sie es heute leichter diese Wörter nach zu schlagen. Zu meiner Zeit, als ich die brauchte, kostete ein richtig gutes Lexikon für technisches Englisch um die 1000 DM.
Olaf schrieb: > Keine Sorge. Die Applesierung der Welt schreitet voran. Ich bin mir > sicher das bald die Doedel einen Pythoninterpreter auf ihre Controller > installieren und dann uns erzaehlen wie toll das doch sei. Aber wenn es einfacher wird, was würde dagegen sprechen? sollen nur "Eingeweihte" so was machen dürfen? Bin mir sicher die meisten Autofahrer können keinen Zahnriemen wechseln oder die Kopfdichtung ersetzen, aber das müssen sie auch nicht, denn sie wollen nur fahren. Übertragen heißt das doch, ich will dass der Mikrocontroller das oder dies macht, wie er das anstellt ist seine Sache. Es wäre doch schön wenn mann ihm 'sagen' könnte, "Hey ATtiny, ich brauche für 10ms einen Ausgang auf PB4, aber nur, wenn du ein Signal an PB1 für länger als 3ms bekommst!"q Was ist so schlimm daran, wenn es alle können? Nur weil dann einige nicht mehr was besonderes können?
> Bin mir sicher die meisten Autofahrer können keinen Zahnriemen wechseln > oder die Kopfdichtung ersetzen, aber das müssen sie auch nicht, denn sie > wollen nur fahren. Das ist der falsche Vergleich. Du muesstest eher sagen wieso sollen Autowerkstaetten noch einen Zahnriemen wechseln koennen, es reicht doch wenn sie einfach den ganzen Motor auswechseln. Das macht dann vielleicht deutlich wo ich die Probleme sehe. Ein Recht auf Dummheit mag ja gut und schoen sein, aber es macht eine Gesellschaft halt ineffizient. Natuerlich wuerde umgekehrt keiner erwarten das der Endkunde eines Elektronikprodukts eine neue Firmware flashen kann! Vollkommen absurd. Noch nie dagewesen. :-) Olaf
Olaf schrieb: > Das ist der falsche Vergleich. So falsch finde ich den gar nicht. Noch besser aber wäre wohl gewesen: Wohl nur die wenigsten Autofahrer wissen wie ihr Motor funktioniert, zur Arbeit kommen sie mit ihrem Auto aber trotzdem. ;)
Doch, er ist falsch. Autofahrer sind Endkunden. Programmierer eines Microcontrollers sind aber Entwickler. So wie der Entwickler des Motors in einem Auto. Die sollten schon noch wissen was da abgeht. Olaf
F. F. schrieb: > Was ist so schlimm daran, wenn es alle können? > Nur weil dann einige nicht mehr was besonderes können? Die Frage würde ich mir momentan gar nicht stellen. Denn zum einen interessiert es den Großteil der Leute gar nicht (welchen User eines Smartphones interessiert der Mikrocontroller darin, wenn er seine Whatsapp-Nachrichten tippt?) und zum anderen wird es so schnell keine universelle Computersprache geben. Es wurde schon immer versucht, einfache Programmiermöglichkeiten zu schaffen und die Mikrocontroller für "jedermann" zugänglich zu machen. Sei es BASIC damals für 8051 oder PASCAL, Fuzzylogik oder irgendwelche interaktive Oberflächen, mit denen man sich Peripheriefunktionen zusammenklicken kann. Die Ernüchterung folgte auf dem Fuße. Mit dem darauf folgenden katastrophalen Rückschritt müssen wir heute noch leben. Das ist ca. 40 Jahre alt und nennt sich C. C war die Antwort auf die Programmiersprache "B" und danach waren die Programmierer so gefrustet, dass es bis heute dabei geblieben ist und es kein "D" mehr gab :-)) Der bis heute andauernde Ruf nach einer einfachen Programmiermöglichkeit zeigt, dass dies wohl doch nicht so einfach ist, wie in den Anfängen der Computergeschichte vermutet. Die einzige Hardware, die leicht verständlichen Befehlen folgt (wenn auch nicht immer und oft nur mit einem Tritt in den Hintern), nennt sich Mensch. Olaf schrieb: > Sei dankbar! Der Grund warum so mancher alter Knacker immer noch an den > MCS51 haengt ist die Erinnerung an das Gluecksgefuehl das man beim > Umstieg von MCS48 auf MCS51 empfunden hat. :-) Das Glücksgefühl hatte ich bereits mehrfach: - beim Umstieg von 8048 auf 8051 - beim Umstieg von 8051 auf M16C (Whow! 16Bit!) - beim Umstieg von M16C auf ARM (Whow! 32Bit!) wenn nur dieses sch**** C nicht wäre :-) Gruß Joachim
> wenn nur dieses sch**** C nicht wäre :-)
Ich hatte zeitweise meine Hoffnung auf Go gesetzt, aber dann kam ich zu
der Zeile mit dem Garbage Collector....
Olaf
C ist an sich nicht schlecht, aber es wurde ursprünglich für für das Programieren von PC's entwickelt und hier funkzioniert es sehr gut, erst danach wurde es für andere Systeme angepasst. Und das ist nicht so gut gelungen weil jeder Chip seine eigene Programier-Sprache braucht. Der Grund dafür ist ein ganz anderer interner Aufbau und andere Assembler Befehle. Wenn alle Prozessoren intern gleich wären und gleiche Befehle hätten, dann wäre das natürlich leichter.
C ist doch mit Abstand noch die Beste Wahl auch für MCs. Mein Einstieg war in den 80ern ebenfalls auf dem 8051. 15 Jahre Assembler waren dann irgendwann genug und der Umstieg auf C stand an, ich habe es nie bereut. Nach diversen ASM Erfahrungen war ein Umsatteln auf C einfach nur konsequent und von AVR über MSP430, ARM etc. macht C dann die Erarbeitung in neue Typen einfach nur Spass :-) und lässt einem Zeit für andere Dinge. > Wenn ich mir die Antworten dazu so anschaue würde mich der > Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über 50. Stimmt :-)
Naja, die MCS52 Serie kann je bekanntlich testen, ob ein Bit gesetzt ist. In Pseudocode etwa so:
1 | if ( isset PB.1) { |
2 | tuwas(); |
3 | }
|
In C muss man das jedoch deutlich umständlicher schreiben. Genau genommen kann C nur ganze Bytes lesen und mit der UND Funktion verknüpfen.
1 | if (PINB & 2) { |
2 | tuwas(); |
3 | }
|
Ich finde, dass die Sprache C hier weit von dem entfernt ist, was tatsächlich passiert. Der Compiler optimiert das gut, aber trotzdem wirkt der Ausdruck für mich wie von hinten durch die Brust. Nur gut, dass es Makros gibt.
Stefan, wenn du schon "isset" schreibst, dann musst du auch "tu wat" schreiben. ;-) SCNR
:
Bearbeitet durch User
SDCC kann das so:
1 | if (PINB_2) { |
2 | tuwas(); |
3 | }
|
Mit dem "." geht es nicht, weil "2" eine Zahl und kein Identifier ist. Es muß ja nicht agiles rumzappelt sein, aber etwas flexibel darf man schon sein ;-)
Hab mich vor 2 Tagen schon gefragt, wann hier endlich über Autos/Motoren oder Hüner/Eier diskutiert wird.
Kenner ;-) schrieb: > C ist an sich nicht schlecht, aber es wurde ursprünglich für für das > Programieren von PC's entwickelt Eigentlich als Sprache von Unix und damit Minicomputern. PC gab es überhaupt noch nicht.
Wie gesagt es gibt Von-Neumann-Architektur und Harvard-Architektur. Der PC hat Von-Neumann-Architektur und die meisten Mikrocontroller Harvard-Architektur. https://de.wikipedia.org/wiki/Von-Neumann-Architektur
Kenner schrieb: > Wie gesagt es gibt Von-Neumann-Architektur und Harvard-Architektur. > Der PC hat Von-Neumann-Architektur und die meisten Mikrocontroller > Harvard-Architektur. > > https://de.wikipedia.org/wiki/Von-Neumann-Architektur Welche Architektur der Prozessor hat ist der Programmiersprache C sowas von egal denn C ist eine Hochsprache, hat also ein entsprechend hohes Abstraktionslevel. Ihr vergleicht hier Birnen mit Kartoffeln. Stefan U. schrieb: > In C muss man das jedoch deutlich umständlicher schreiben. Genau > genommen kann C nur ganze Bytes lesen und mit der UND Funktion > verknüpfen. Wieso ist das Umständlicher? In C heißt das
1 | if (PIND & ( 1 << PD2)){ |
2 | doSomething(); |
3 | }
|
Das finde ich ist genauso gut wie
1 | sbic PIND, 2 |
2 | rjmp doSomething |
und nix anderes macht ja auch C aus der If-Anweisung.
Michael K. schrieb: > Welche Architektur der Prozessor hat ist der Programmiersprache C sowas > von egal In der Programmiersprache C mag das noch stimmen, in diesem Thread aber nicht. Hier gehts um (den ersten) Mikrocontroller, bitte dabei bleiben, noch ein Programmiersprachen Thread braucht niemand...
Hallo, Fundstück aus meiner "Sammlung": µPD75CG08 Entwicklerversion, laut Internet wohl von 1987. Wo wurde der wohl eingesetzt? Gruß aus Berlin Michael
Der kann überall eingesetzt worden sein. 4 Bit Controller fanden sich in nahezu jedem Gerät, von der Waschmaschine bis zum Kassettenrekorder. Diese Piggyback ICs waren sehr teuer. Die Serie ging dann aber ausschließlich über Masken-ROM, weshalb ich mich niemals für 4Bit interessiert habe. Ende der 80er hatte schon jeder Hersteller 16Bit im Angebot, aber die 4Bit uC machten sehr lange Zeit den Großteil des Marktes aus. Gruß Joachim
Joachim schrieb: > wenn nur dieses sch**** C nicht wäre :-) Ich postuliere Mal folgenden Satz: Die Wahrscheinlichkeit, dass in einem Thread, egal mit welcher Ursprungsfrage, ein C-Bashing erfolgt, geht mit steigender Antwortzahl gegen 1 Und das, obwohl niemand gezwungen wird C zu verwenden.
> Welche Architektur der Prozessor hat ist der Programmiersprache C sowas > von egal denn C ist eine Hochsprache, hat also ein entsprechend hohes > Abstraktionslevel. Das ist schon richtig, aber diese C compiler werden von verschiedenen Leuten geschrieben und deswegen wird es manchmal gut umgesetzt und manchmal nicht so gut.Für PC gib's gute C-Compiler aber für Microcontroller nicht.
> Und das, obwohl niemand gezwungen wird C zu verwenden.
Das stimmt nicht. Wenn du Microcontroller programmieren willst dann
programmierst du entweder in C oder du bist arbeitslos.
Bei aller Kritik an C ist es ja ein grosser Vorteil das wirklich jeder
Controller ausschliesslich in C programmiert wird. (kommerziell, nicht
privat!)
Olaf
Kenner schrieb: > Für PC gib's gute C-Compiler aber für > Microcontroller nicht. Was für ein Blödsinn diese Verallgemeinerung! Offenbar hast du sehr beschränkte Programmierkenntnisse sowohl am PC als auch für µCs. Vielleicht mal andere µCs ansehen? > Wenn du Microcontroller programmieren willst dann programmierst du > entweder in C oder du bist arbeitslos. Liegt wohl daran, dass sich C bei der überwiegenden Anzahl der Profis als der beste Kompromiss durchgesetzt hat. Wenn PL/M oder Assembler so toll wären, dann hätte wohl nicht schon in Urzeiten selbst am 51er C (Keil, der IAR war damals Schrott) die beiden großteils abgelöst. Natürlich greift man für manche Sachen noch immer besser auf Assembler zurück. Aber meist ist C einfach besser.
Michael U. schrieb: > µPD75CG08 Entwicklerversion, laut Internet wohl von 1987. > Wo wurde der wohl eingesetzt? Z.B. in den Jalousieantrieben meiner Eltern. Das ist aber im Vergleich zu TMS1000 und z.B. den alten COP Prozessoren, die wir nicht vergessen sollten, schon Jahrzehnte neuer. Die NEC Dingse begegnen einem bis heute, wobei ich manche Entwickler in Verdacht habe, das sie die extra deswegen nehmen, weil sie immer ein wenig exotisch bleiben. Allerdings haben sie aber z.B. auch LCD Treiber onchip und auch AD Wandler.
:
Bearbeitet durch User
Es wird überwiegend in C programiert weil die meisten "profis" diese Sprache kennen und nich auf eine andere umschulen wollen, aber das bedeutet nicht, dass es keine bessere gibt, besonders für Microcontroller gibt's bessere Sprachen.
> bedeutet nicht, dass es keine bessere gibt, besonders für > Microcontroller gibt's bessere Sprachen. Na dann erzaehl doch mal. Ich programmiere gerade ARM, M16C und SH2. Welche bessere Sprachen (mehrzahl?) gibt es da? Auch ich habe durchaus das ein oder andere an C auszusetzen, aber ist einfach die einzige Sprache die es fuer wirklich jeden Controller gibt. Ich wuerde es wirklich begruessen wenn sich da mal was anderes entwickeln und durchsetzen wuerde, aber das ist nicht abzusehen. Olaf
Kenner schrieb: > Für PC gib's gute C-Compiler aber für > Microcontroller nicht. Schmarrn, vielleicht verwechselst Du hir IDE oder Bibliotheken mit Compiler aber wahrscheinlich hast Du nicht die geringste Ahnung. der gcc bspw ist für PC oder uC der gleiche.
Olaf schrieb: > Ich wuerde es wirklich begruessen wenn sich da mal was anderes > entwickeln und durchsetzen wuerde, aber das ist nicht abzusehen. Mir fällt da FORTH ein. Zugegeben, sehr speziell aber für spezielle Anwendungen besser als Compilersprache geeignet. Gibst wohl für alle Controller und Prozessorarchitekturen sogar spezielle FORTH-Prozessoren. http://www.mpeforth.com/press/MPE_PR_From_Telescope_to_Comet_2014_11_13.pdf
Kenner schrieb: > Für PC gib's gute C-Compiler aber für > Microcontroller nicht. Nö, viele MC-Compiler sind äußerst gut. Um beim 8051 in Assembler etwa 10% Code zu sparen gegenüber dem C51, bräuchte ich die 100-fache Entwicklungszeit. Was ist effektiver, 10% mehr Flashbelegung oder 10000% mehr Zeitaufwand?
Olaf schrieb: > Na dann erzaehl doch mal. Ich programmiere gerade ARM, M16C und SH2. > Welche bessere Sprachen (mehrzahl?) gibt es da? C++. C kann nichts, was C++ nicht mindestens ebensogut koennte.
Kenner schrieb: > Das ist schon richtig, aber diese C compiler werden von verschiedenen > Leuten geschrieben und deswegen wird es manchmal gut umgesetzt und > manchmal nicht so gut.Für PC gib's gute C-Compiler aber für > Microcontroller nicht. Endlich mal einer, der sich auskennt und mit hohem Sachverstand vorurteilsfrei und ohne Pauschalierung die Lage messerscharf analysiert und die Tatsachen auf den Punkt bringt. mfg.
:
Bearbeitet durch User
> Mir fällt da FORTH ein. Oh Gott! So ein Quatsch. Ich hab ja selber mal vor vielen Jahren einen kleinen Forthcompiler fuer ST6 programmiert und auch zwischendurch immer mal wieder eine kleine Forth-Sache in der Sprache des HP48 geschrieben. Ich vermag also an der Sprache durchaus eine gewisse Eleganz zu entdecken. Aber hast du eigentlich schonmal jemals an einem grossem Projekt gearbeitet? Wo 10-20Leute dran arbeiten? SIL-Zertifziert, Misra, Lint? Wo man Source aus den vergangenen 10Jahren weiterverwendet? Wo selbst in C ein grosser Aufwand und Disziplin notwendig ist? Forth ist doch ein grosser Schmerz im Arsch wenn du etwas programmierst was laenger ist wie 10 Seiten. > C++. C kann nichts, was C++ nicht mindestens ebensogut koennte. Hihi. Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser nicht verwenden. Und die Probleme die du mit normalem C hast, wofuer man ja gerade Misra und aehnliches verwendet hast du immer noch. Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen sollte. Olaf
Einen Thread "welches ist die beschissendste Programmiersprache" könnt ihr eigentlich separat aufmachen... Um mal wieder ein wenig in Richtung Ursprungsfrage zu lenken: Frank E. schrieb: > Laut Definition ist ein Mikrocontroller ein Mikroprozessor, vereint mit > Programm- und Daten-Speicher und IO-Baugruppen in einem Chip... > Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben > haben. Wenn diese Definition stimmt: Der Hitachi HD32127 (und seine unzähligen Kollegen...) besitzt Programm- und Datenspeicher sowie Ein- Ausgabebaugruppen. Und er kann eigenständig Anwendungen ausführen. Sehr spezielle, freilich. Entstanden ist er etwa zeitgleich mit mit dem Intel4004. Kann man da schon von einem Mikrocontroller sprechen??? http://www.alciom.com/perso/calc/casio/mini/descrcalc.htm
kuehler rechner schrieb: > Entstanden ist er etwa zeitgleich mit mit dem Intel4004. Kann man da > schon von einem Mikrocontroller sprechen??? IMO ja. Ich sehe das ähnlich wie der ein und andere: Ein Mikrocontroller ist ein Mikroprozessor mit Peripherie (kann, muss aber nicht, auch Arbeits- und Programmspeicher sein). Also im Prinzip ist ein Mikrocontroller ein Chip der neben dem Mikroprozessor noch einen weiteren Funktionsbaustein trägt, und wenns ein läppischer AD-Wandler ist.
kuehler rechner schrieb: >> Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben >> haben. > > Wenn diese Definition stimmt: Eher nicht. Liegt auch nicht unbedingt nahe. Der ursprüngliche Einsatzzweck von Mikroprozessoren waren Controller. TIs TMS1000 war kurz nach Intels 4004 fertig. Und gilt als erster Mikrocontroller. Damit stimmt zwar die Reihenfolge, aber nicht die Kausalität.
:
Bearbeitet durch User
Ich verstehe nicht was das für eine Relevanz hat, welcher Mikrocontroller der erste war? Viel interessanter, für mich jedenfals ist, wie er aufgebaut war und welche Architektur er hatte.
Kenner schrieb: > wie er aufgebaut war und welche Architektur er hatte. Das Grundprinzip hat sich heute bis heute nicht geändert. Aber auch für deine Frage musst du ja erst mal wissen wer der erste war bevor du fragen kannst welche Architektur er hatte und wie er aufgebaut war.
Zusamengafasst kann man also sagen das die ersten Mikrocontroller 4-biter waren und hatten sehr wenig resourcen, und waren schwer zu programieren. Also fast für nichts zu gebrauchen.
Kenner schrieb: > Also fast für nichts zu gebrauchen. Das würde ich so nicht sagen. Für die damalige Zeit waren sie für relativ viele Aufgaben zu gebrauchen. Man darf diese Technik nicht blind mit der heutigen Technik vergleichen sondern muss schaun: Was gabs zu dieser Zeit als Alternativen.
Kenner ;-) schrieb: > Also fast für nichts zu gebrauchen. Für Tisch- und Taschenrechner beispielsweise. Dafür hatte TI die TMS1000 nämlich entwickelt. Es hatte freilich etwas gedauert, bis TI das Potential erkannte und die Mikros davon loslöste und auf den Markt brachte.
Michael K. schrieb: > und wenns ein läppischer AD-Wandler ist. Ein Microcontroller mit A/D-Wandler ist die ganz hohe Schule der Halbleitertechnik, weil es sich um einen Mixed-Mode-Baustein handelt. So etwas konnte man lange Zeit auch nur in Hybrid-Technik realisieren. Als läppisch würde ich eher einen digitalen I/O-Port in Datenbusbreite bezeichnen, d.h. bei frühen Controllern in 4 Bit oder 8 Bit. Etwas komplexer wäre schon ein UART oder Timer, insbesondere wenn diese extern taktbar sind.
Olaf schrieb: > grosser Schmerz im Arsch wenn du etwas programmierst was laenger ist wie > 10 Seiten. Apropos Schmerz im Arsch...
Olaf schrieb: > Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten > erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser > nicht verwenden. nein, man muss ihnen gar nichts beibringen. Denn wenn man die Sprache verstanden hat (was zum programmieren gehört), dann weiß man auch das z.B. Exceptions für den Compiler aufwändig zu implementieren sind. Man muss einfach sein Werkzeug kennen. Witzigerweise ist Unkenntnis oftmals der Grund der Ablehnung von C++. Genauso könnte ich argumentieren warum wir nicht in Assembler programmieren. Ist doch viel einfacher als C. Die Zeitersparnis möchte ich bei komplexen Projekten nicht gegen C tauschen. Der einzige Vorteil sehe ich in der geringfügig besseren Portabilität. Aber dafür verzichtet man auf ein mächtiges Werkzeug. Allein die OOP ist für mich Grund genug C++ zu nutzen. OOP in C wird spätestens bei der Vererbung ein Krampf. Unübersichtlich sowieso. Zusätzlich bekommt man in C++ eine effiziente Bibliothek (Standardlib + Boost) geschenkt, die auf größeren Controllern ohne Probleme einsetzbar ist.
> Ein Microcontroller mit A/D-Wandler ist die ganz hohe Schule der > Halbleitertechnik, weil es sich um einen Mixed-Mode-Baustein handelt. Richtig, ist so schwierig das es heute noch Firmen (nennen wir sie z.B mal ST ) gibt die damit ihre Probleme haben. :-) Olaf
Olaf schrieb: > Hihi. Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten > erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser > nicht verwenden. Also, "Oh je, ich muss was lernen!" gilt in meiner Branche nicht als Ausrede. Und "Also, das hat man mir an der Schule nicht beigebracht." auch nicht. :-) > Und die Probleme die du mit normalem C hast, wofuer man > ja gerade Misra und aehnliches verwendet hast du immer noch. Solange Menschen programmieren, werden Menschen das Hauptproblem sein, richtig. :-) > Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der > Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache > aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen > sollte. Das ist wohl wirklich dir traurige Wahrheit: Gibst du Entwicklern Freiheiten, bauen sie Mist. Also musst du ihre Freiheiten immer mehr einschraenken. Womit du sprachlich immer mehr von Implementierungen zu Beschreibungen uebergehen musst.
Olaf schrieb: > Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der > Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache > aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen > sollte. Wobei Ada ursprünglich exakt diesen Anwendungsbereich adressierte, also embedded Systems einer Komplexitätsklasse, die heutigen 32-Bit Mikrocontrollern entspricht. Mit präzise definierter typsicherer Sprache und der Möglichkeit, die Implementierungseigenschaften zu kontrollieren. Auch Nebenläufigkeit war darin bereits vorgesehen.
Ich habe mir Ada angeschaut und bin nicht so begeistert davon.Es ist alles viel zu kompliziert und unverständlich.
Obwohl wie ich erfahren habe, ist die komplette Software des Eurofighters ist in Ada geschrieben. Hoffentlich gibt's da keine compiler bugs.
Andreas S. schrieb: > Als läppisch würde ich eher einen digitalen I/O-Port in Datenbusbreite > bezeichnen, d.h. bei frühen Controllern in 4 Bit oder 8 Bit. Um den 8048 noch mal aufzugreifen: Der "erste 8 bit Single Chip Mikrocontroller der Welt" hatte einen guten Kumpanen, beide wurden wohl auch gezielt füreinander entwickelt: Den I/O-Expander 8243. Über einen 4-bit-Bus konnten sie angebunden werden, womit man den 8048 um 16 I/O je Baustein - sie waren über Chip Select kaskadierbar - erweitern konnte. Ein Schreib- oder Lesezugriff auf den externen Port brauchte nur einen einzigen Befehlszyklus, so, als sei der Port bereits im µC integriert. Das machte die Hardwarelogik. Für diese Sache hatte der 8048 spezielle Befehle im Befehlssatz, die auf den Portexpander zugreifen. Die Portbezeichnungen deuten ebenfalls auf die gegenseitige Abstimmung der beiden hin: Hatte der 8048 die Ports P0, P1, P2 und P3, so lauteten sie beim 8243 P4, P5, P6 und P7. Ein Transportbefehl lautete z.B. MOVD A,P7 und ein Verknüpfungsbefehl ORLD P6,A. Wenn man die beiden jetzt miteinander vergießen würde, hätte man ja auch einen einzigen Chip. So war es teilweise bei µC aber auch realisiert: Der Chip hatte unter dem Kunststoff in Wahrheit mehr als einen Die, die untereinander mit Bonddrähten verbunden waren. Der Nachfolger 8051 hatte so ein Feature nicht mehr. Er hatte nur wenige I/O mehr als der 8048, also auch noch nichts berühmtes. Wenn man mehr I/O brauchte, sagte man: Nimm den neuen 8255 von der Produktlinie Erweiterungsbausteine für das System 8085 aus gleichem Hause, die passen auch auf 8051. Der 8255 wurde erst in der Zeit zwischen 8048 und 8051 entwickelt. Der älteste 8255 aus meiner Sammlung ist aus dem Jahr 1979. Aber von AMD. Das wundert mich etwas, die Geschwindigkeit mit der das Second Source Teil am Markt war, denn er war ja gerade erst kurz von Intel entwickelt. Michael U. schrieb: > Fundstück aus meiner "Sammlung": > µPD75CG08 Entwicklerversion, laut Internet wohl von 1987. > Wo wurde der wohl eingesetzt? In meiner Soehnle Küchenwaage aus den 1980-ern befindet sich ein µPD7520, das könnte sowas ähnliches sein. Kenne mich aber mit deren Produktlinien nicht aus. Auf jeden Fall älter, vielleicht sogar noch aus den 1970-ern, denn es ist ein PMOS. Betriebsspannung unstabilisierte -8V. Ja, Minus, negativ gegen Masse. Im Gerät befinden sich 6 Mignonzellen in Reihe. Ich zog mir mal das Datenblatt des µC, weil ich neugierig war. Eigentlich so ein typisches Teil für die Zeit, wie die i8048 oder MC68705P3.
Es gab noch einen weiteren interessanten Peripheriebaustein, den 8155. Dieser hatte neben den I/O auch noch 256 Byte RAM und einen extra Timer. Der ist auch auf meinem weiter oben abgebildeten Lichtkontroller zur Steuerung der Tastatur und Anzeige eingesetzt. Den 8243 hatte ich auch oft eingesetzt. Wenn man z.B. 7segment Displays anschließen wollte, dann konnte man relativ einfach 4 Stellen über einen 8243 und 4 7447 Bausteine anschließen, ohne die Anzeige zu multiplexen. Gruß Joachim
Nonsens schrieb: > Wenn man mehr > I/O brauchte, sagte man: Nimm den neuen 8255 Die riesigen 8255 mußte ich mir zum Glück nicht mehr antun. Ich hab beim 8051 schon die 74LS574 bzw. 74LS541 zur Erweiterung verwendet. Mit einem 74LS139 als Adreßdekoder hatte man dann je 32 Ein- und Ausgänge memory mapped. Und falls man schon den schnellen DS80C320 nahm, waren die 8255 eh zu langsam.
Die ersten DS80C320 hatten noch einen Bug: im T0 Mode 3 ging T1 nicht mehr als Baudratengenerator. Nachdem ich den Bug gemeldet hatte, haben die das aber sehr schnell gefixt.
Nonsens schrieb: > Der älteste 8255 aus meiner Sammlung ist aus dem Jahr 1979. Aber von > AMD. Das wundert mich etwas, die Geschwindigkeit mit der das Second > Source Teil am Markt war, denn er war ja gerade erst kurz von Intel > entwickelt. Damals legten einige strategisch wichtige Anwender wie Staat/Rüstung grossen Wert darauf, nicht von einem einzigen Anbieter abhängig zu sein. Es musste einen zweiten Anbieter für die einzusetzenden Produkte geben. Intel musste also mit einem Partner kooperieren. Entsprechende Verträge mit AMD führten zu ganz offiziell vom Die weg abgekupferten x86 Prozessoren und zu grossen Rechtsstreitigkeiten. Das ging allerdings auch in die andere Richtung. Intel hatte bei der Peripherie nicht immer ein gutes Händchen (*). AMD übernahm deshalb manche Bausteine in erheblich verbesserter Form, die dann teilweise wiederum bei Intel im Programm waren. IIRC ist der im PC eingesetzte DMA Controller aus der 8080 Serie so ein Teil. *: Unken rufen, dass dies auch auf die Prozessoren selbst zutrifft. ;-)
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.