Microcontroller rechnen

ich bin noch ein ziehlicher anf=E4nger, aber ich habe mich schon ausf=FChrlich mit dem Thema besch=E4ftigt! ich schreibe eine hausarbeit zum thema Cumputertechnik und ihre entwicklung! ich habe angefangen einen Relaisrechner zu bauen, der zwei einstellige zahlen addieren und subtrahieren kann und diese auf eier 7-seg anzeige ausgibt.(Gewicht: ca40kg, Stromverbrauch: max30 Watt) dies w=FCrde ich jetzt gerne mit einem microcontroller nachbauen. ich w=FCrde gerne wissen welchen ic ich daf=FCr verwenden sollte, damit es am einfachsten ist. ich hatte einen atmega angepeilt und als sprache basic! w=FCrde mich =FCber eure meinung freune! au=DFerdem br=E4uchte ich eine kleine hilfestellung bei der Programierung! vielen dank f=FCr die M=FChe

Reply to
schmitt-stefan-
Loading thread data ...

snipped-for-privacy@gmx.net schrieb:

Im Prinzip jeder Mikrocontroller deiner Wahl. Du kannst auch ein CControl-Teil von Conrad nehmen, diese sind direkt in Basic programmierbar, allerdings ziemlich teuer (so um 30EUR). Atmega ist sicher eine nette Sache. Ich persönlich würde entweder ATmega8 nehmen und direkt in Assembler schreiben oder irgendein MSP430 und in C hacken. Hauptsache deswegen, weil ich die Programmiertools dafür habe :-). Als Zwischenstufe zwischen Mikrocontroller und Relais könnte man alles zu Fuß mit TTL/CMOS aufbauen. Je nach Aufwand 3 bis 4 ICs. Oder auch mit einem IC: 2 BCD-Rändelschalter um die Zahlen einzustellen, ein Schalter für das Vorzeichen dazu ein 4 Bit-Addierer/Substrahierer (z.B. 74181) und 2 7-Segmentdekoder mit einer Tüte Dioden aufgebaut.

Waldemar

Reply to
Waldemar Krzok

ATmega ist schonmal super, aber vielleicht nicht unbedingt Basic ;)

Besorg' dir einfach AVRstudio und WinAVR, und schreib' dein Progamm in Assembler oder C.

formatting link
formatting link

Bei AVRstudio ist auch ein guter Simulator dabei -- da kannst du dein Programm auch ohne Hardware ausprobieren.

Dafür sind die Foren von

formatting link
vermutlich besser geeignet!

formatting link

--
Thomas Kindler
Reply to
Thomas Kindler

schrieb im Newsbeitrag news: snipped-for-privacy@3g2000yqk.googlegroups.com...

Er steht vor dir,. Es ist dein PC. Dessen Prozessor ist seit dem 8088-Zeiten etwas aufgebohrt und ueberholt gar eine Cray1S, und er ist baulich etwas groesser,

aber wenn du das Ding

programmieren willst, willst du ja gerade vom Prozessor nichts sehen.

Schliess die 7-Segment-Anzeige an den Drucker-LPT-Parallelport an (oder nutze eine POST-Karte mit 2 7 Segment Anzeigen)

und schreib dein Programm in MBASIC oder sonst einem einfachen Dialekt.

Damit sparst du dir den einzig schwierigen Teil, naemlich das Uebertragen des Programms von deinem Rechner auf den Microcontroller, fuer den ein paar Kabel zwischen beiden und die richtige Bedienung eines Download- Programms erlernt werden muesste. Denn du wolltest ja

Natuerlich gehoert gerade dieses Uebertragen des Programms beim Microcontroller dazu, man kann das auch als Lernschritt sehen, und trotzdem den Prozessor nicht sehen wollen, also BASIC einsetzen.

Klassisch gibt es dazu die BASIC-Briefmarke, teuer von Wilke, heute wohl billig vom eBay-Schrott, als komplettes Entwicklungspaket sicher einfach zu erlernen und gut dokumentiert.

Aber du siehst schon, ich wende mich gegen BASIC. Wenn man wissen will, was ein Microcontroller ist, wenn man Mathematik vorher mit Relais gebaut hat, dann sollte man den Microcontroller in Assembler programmieren.

Dabei bleibt der Arbeitsschritt der Uebertragung des Programms vom PC auf den Microcontroller, das ist nicht anders als bei BASIC auch, aber man sieht den Prozessor im Microcontroller direkt, ohne verschleierndes BASIC. (owbohl ich nichts gegen BASIC habe, siehe meine Homepage).

Programmiert man den Microcontroller direkt, kann man fuer dein Problem jeden nehmen, der zumindest 16 Anschluesse (I/O-Ports) hat, und das ist fast jeder.

Ob ein ATTiny2313, ein AT89S51, ein MC68HC11E1 oder sonstwer, fuer deine supersimple Anwendung (4 Anschluesse codieren eine Eingabezahl, 4 Anschluesse die andere Eingabezahl, 1 Anschluss ob addiert oder subtrahiert werden soll, 7 Anschluesse versorgen die 7-Segment-Anzeige, hast du kein Minuszeichen?) braucht man nicht mal quartzstabilen Takt.

de.sci.electronics FAQ:

formatting link

formatting link
?

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Fotos bitte :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

vielen dank f=FCr eure antworten!! ich werde mich mal weiter umschauen und mich demn=E4chst noch mal melden!! aber ich glaube ich werden einen ATmega8 nuten und in Assembler schreiben, wie ihr es mir geraten habt!!! auch die zwischenstufe werde ich bei gen=FCgend zeit in betracht ziehen!! gru=DF stefan

Reply to
schmitt-stefan-

ich hab keine ahnung wie man ein foto anf=FCgt

Reply to
schmitt-stefan-

snipped-for-privacy@gmx.net schrieb:

Geht in dieser Newsgroup nicht. Es gibt aber im WEB die Möglichkeit, Bilder auf Servern abzulegen und hier nur den Link zu "posten".

Tipps zum Controller hast Du ja schon bekommen, dann mach' ich jetzt mal den Besserwisser:

Du schreibst zwar in ein Web-Formular bei Google, "bist" aber in einer Newsgroup:

formatting link

Falk P.S.: Wenn das mit den Controllern klappt, sieh mal nach Deiner Shift-Taste, die klemmt manchmal ;-)

--
GG Art. 5 - Eine Zensur findet nicht statt
https://secure.wikileaks.org/wiki/Deutsche_Wikileaks_Domain_ohne_Vorwarnung_gesperrt
http://blog.fefe.de/?ts=b727b1b0
Reply to
Falk Willberg

Macht man in Newsgroups normalerweise auch nicht (es sei denn es sind welche mit binary im Namen). Aber wie Falk schon schrieb, gibt Services wie den hier:

formatting link

Noch besser wäre natürlich ein Film, mit Klicken und Klappern der Relais, also sowas hier:

formatting link

Auch schön :-)

formatting link

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

schrieb

Also ein superkleines Rechenwerk, wenn ich recht verstehe?

Ein microcontroller *enthält* zwar, *ist* aber kein Rechenwerk. Zwar kann man ein Rechenwerk auf einer programmierbaren Maschine nachbilden, "emulieren" nennt man das, aber das ist vermutlich nicht was du unter "nachbauen" verstehst, oder?

(Falls du aber wirklich nichts anderes 'zwei einstellige Zahlen' irgendwo eingeben und das Ergebnis irgendwo sehen möchtest, dann habe ich dich falsch verstanden, dann ignoriere bitte meine Antwort. Obwohl andere hier dir für diesen Fall zu Atmel geraten haben, hätte ich dir dann eher geraten, deinen Taschenrechner in die Hand zu nehmen :)) Denke aber, du willst wirklich das machen von dem du schreibst, das du es machen willst, also...)

Ein uC ist, denke ich, nicht das was du suchst! Falls doch, wäre ein praktikabler Ansatz der, eine 'state machine' aufzubauen, die dein Rechenwerk wie gesagt "emuliert".

Anders ausgedrückt: Einzelne bits in Registern würden die jeweiligen Schaltzustände deiner Relais abbilden d.h.~damit kannst du auf dieser Ebene eine 1:1 Relation deines Rechenwerks nachbilden.

Allerdings brauchst du leiderleider etwas sequentielle (wird gleich erläutert, was das heissen soll, ist aber eben die "state machine") Funktionalität um deine Abbildung herum und das verkompliziert deine Aufgabe:

Mal konkret: Du möchtest einstellige Zahlen eingeben, z.B. per "Mäuseklavier" und danach Ergebnisse ausgeben, z.B. per LEDs. Die Funktion selbst soll eine 1:1 Abbildung deines Relais-Rechenwerks sein. (Hab' ich das so richtig verstanden? Dir also z.B.~einen chip zu nennen, der ein fertiges Rechenwerk enhält, wäre also nicht, wonach du fragst?)

Eine (für dich: unnötige d.h. Alternative wird später genannt) Verkomplizierung des Problems besteht dann generell darin, dass deine Relais parallel arbeiten (sie hangeln sich, salopp gesprochen von Schaltzustand zu Schaltzustand und in jedem Übergang, jedem Taktschritt passiert u.U.~gleich an mehreren Relais was; es geschieht also Mehreres, nicht nur Einzelnes gleichzeitig) was sich auf einem microcontroller, der streng sequenziell arbeitet (immer nur ein Arbeitsschritt ist pro Taktzyklus absolvierbar) nur über Umwege, üblicherweise eben mit besagter "state machine" nachbilden lässt.

Zusammengefasst: Verwendung eines uC für deine Aufgabenstellung für Leute mit Erfahrung zwar rasch umsetzbar, 'täglich Brot' sozusagen. aber als Einstieg in die Programmierung kleinster uC (jedweder couleur, egal ob PIC oder Atmel oder Renesas oder MSP oder sonstwas) IMHO denkbar ungeeignet und daher rate ich dir hier von der Verwendung eines uC ab!

Zumal es eine gute, billige, praktikable, leicht beschaffbare Alternative gibt.

Einfachheit ist immer gut! KISS ist wirklich sexy! (KISS = keep it simple, stupid :)

Allerdings: Was "einfach" ist, hängt auch von Erfahrung und Vorgeschichte ab. "Einfach, an sich" gibbet nicht! Der Eine schwimmt "einfach" im Fall des Notfalles ans Ufer, wo der Andere elendig ertrinkt :\ (Und nicht, weil er dümmer ist. 'schlau und dumm' hat damit, offensichtlich, nix zu tun, sondern eher mit 'erlent' und 'eingeübt').

Zurück zu deiner Frage:

Eine andere Klasse von programmierbaren Bausteinen sind z.B.~sog.~ CPLDs (steht für: Complex Programmable Logic Device), auch hardwaretechnisch viel näher an deinem Relaisrechenwerk als ein popliger microcontroller. Von aussen gesehen (also das zugrunde- liegende Programmiermodell) ist der auch viel einfacher, also Vorteil über Vorteil... *g*

Auf einem einfachen CPLD, den du in dir bekannten Läden oder bei Versendern leicht bekommen kannst (Conrad, Reichelt), lässt sich dein Rechenwerk IMHO adäquat (mittels FF) nachbilden!

Exakte 1:1 Relation zu deinen Relais ist gegeben, sozusagen die Relaistechnik in modernerem Gewande! Du gibst deine Zahlen ein, setzt den Schalter der Addition/Subtraktion festlegt und drückst auf einen roten Knopf *g* und --- voila --- deine Siebensegmentanzeige zeigt das Ergebnis an.

Das isses doch, was du möchtest, nicht?

Ich denke, mit einem solchen CPLD Baustein kommst du rasch ans Ziel, zumal du dich ja schon (zumindest) in Themengebiete Logik und Schaltalgebra (und eine mögliche technische Realisation mittels Relaistechnik) eingelesen hast. Nochmal: uC wäre da "ne andere Kiste", prinzipiell und auch vom Lernaufwand her!

Software, d.h.~Programmierumgebung und Literatur/Anleitung bekommst du aus dem Netz (z.B. Xilinx.com) und einen "Brenner" für um die 10 Euro bei ebay; danach kannst du loslegen: Loch- rasterplatine, Mäuseklavier und LED+Strombegrenzungswiderstände drauflöten, einen Taster noch als Schrittschalter (der das Rechenwerk durchschaltet, ich denke, du hast das bei deinem Relaisrechenwerk auch so gemacht, hier aber: Entprellung nicht vergessen!) und dann kann das Basteln in Logik losgehen...

Hab ich was vergessen? Achja, Stabi (78L05) mit passenden Cs und Steckernetzteil, natürlich.

Alles, was du an Hintergrundwissen noch brauchst, kannst du in Grundlagenliteratur nachlesen, z.B. Umwandlung BCD-->Hex und Hex--> BCD. Komplette Beispiele für solche und andere "Schalt- grundbausteine" findest du auch zusammen mit Software in der Doku des Bausteinherstellers (Xilinx.com hatte ich genannt, weil du deren Bausteine überall leicht bekommen kannst aber gibt natürlich viele andere Hersteller, die solche Chips schnitzen&verkaufen.)

Dein komplettes Rechenwerk realisiert du dann im chip (CPLD) und falls es nicht auf Anhieb funzt (was der Normalfall ist *g*), kannst du den Baustein immer wieder löschen und neu 'brennen'. Also weniger Stress als bei einer Relaisschaltung; da musst du ja bei jeder Revision zum Lötkolben greifen...

Resümee: Obwohl alle Welt von microcontrollern spricht und es vielleicht auch eher deine Absicht ist, die Welt der microcontroller kennen- zulernen (???), ist ein CPLD bei deiner Problemstellung IMHO die weitaus bessere Wahl.

(Es ist übrigens nicht so, dass dir durch Beschäftigung mit CPLD etwas verloren gehen würde, auch nicht: Zeit. Eher im Gegenteil, etwas Grundlagen in Logik und Schaltalgebra sind immer gut! :)))

Reply to
Rüdiger Klenner

"Raimund Nisius" schrieb:

Grad angeguckt, beeindruckend! *g*

Die Zahleneingabe für zwei einstellige Zahlen (ich unterstelle mal Dezimalsystem?) und die eine Siebensegmentanzeige zur Ausgabe der Ergebnisse hab ich jetzt spontan nicht erkannt, sind die auf einem der Bilder drauf?

Und gleich die Frage: Wie gibt man jedes denkbare Ergebnis der Addition zweier einstelliger Zahlen mit nur einer Siebensegmentanzeige aus und wie ist es im Fall der Subtraktion? (Gut, mit einer Siebensegmentanzeige incl. Dezimalpunkt kann man 2^8 - 1 ganze Zahlen ausgeben, was den in Frage kommenden Wertebereich abdecken würde, aber... wie hast du es gemacht?)

Reply to
Rüdiger Klenner

Hat er bei mir abgeladen:

formatting link
formatting link
formatting link

Da liegt das jetzt ne Weile rum.

--
Gruß, Raimund
Mein Pfotoalbum 
Mail ohne Anhang an  wird gelesen. Im Impressum der Homepage
findet sich immer eine länger gültige Adresse.
Reply to
Raimund Nisius

Nimm doch stattdessen den Atmega168. Der kostet nahezu dasselbe, ist moderner, schneller, kann etwas mehr, hat mehr Speicher und ist dennoch pinkompatibel.

Oder gibt es irgendetwas was dagegen spricht?

Gruß, Jürgen

--
GPG key: 
http://pgp.mit.edu:11371/pks/lookup?search=J%FCrgen+Appel&op=get
Reply to
Jürgen Appel

Danke. Das man bei soviel Drähten noch durchblickt. Als Anfänger würde ich mich damit nicht mehr bezeichnen, zumindest was Relais-Technik angeht :-)

Für Anfänger in Sachen Microcontroller ist ggf. sowas hier aber eine gute Idee:

formatting link

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Raimund Nisius schrieb:

Ganz ordentlich :) Bei dem Wuhling könnte er statt einen µC zu nutzen sich doch lieber selber eine CPU konstruieren, z.B. auf Basis CPLD :)

Bernd

Reply to
Bernd Laengerich

@Ruediger.Klenner ich hatte vor den Anfang von der Computertechnik zu beschreiben und selbst zu verstehen und dann in die etwas modernere Computertechnik zu gehn. eine zwischenstufe w=FCrde in meinem fall den Ramen sprengen. Also alle einzelnen sachen mit ic darzustellen, d.h. den codierer, den speicher, den Addierer, bzw. subtrahierer, dann den decodierer von dual zu dezimal, dann von dezimal nach 7seg. ich glaub das wars was mein ding so alles kann. und genau das ist es ja eigentlich, wie mal von diesem system zum programieren kommt. ich habe mir jetzt den ATmega8 bestellt, auch wenn einige dagegengesprochen haben. auch habe ich jetzt AVR Studio und WinAVR instaliert und ein bisschen ausprobiert, kann mir jetzt jemand sagen, wie ich den dann am besten programiere?? also das billigste w=E4re das mit dem Druckeranschluss. ich hab auch einen druckeranschluss+kabel und erfahrung im l=F6ten hab ich jetzt auch^^ aber es gibt viel verschiedene varianten, zb mit zwei 1k ohm wiederst=E4nde oder mit 3 300 ohm naja wenn da jemand ahnung hatt kann der mir das ja mal mitteilen!!! Danke @ Frank Buss aber in der computertechnik bin ich nicht der fortgeschrittenste^^

Reply to
schmitt-stefan-

snipped-for-privacy@gmx.net schrieb:

DasisthierkeinForum.

formatting link

Dashierauch:

formatting link

--
An Enfield Diesel seems to do an even better job than a Harley at
converting fuel into noise without much unwanted speed!
Reply to
Falk Willberg

Ach, verdammt ;) Ich war zu langsam! Sonst hätte ich dir noch hierzu geraten:

Pollin Best.Nr. 810 038 ATMEL Evaluations-Board

14,95?

Da wäre dann auch schon ein Programmer mit drauf, und 'nen bisschen Hardware, um den Atmel auszuprobieren. Es gibt da auch billige Erweiterungsboards mit Display und Relais, Funk, etc.

Viel Spaß am Gerät,

--
Thomas Kindler
Reply to
Thomas Kindler

F=FCr alle, die noch intresse haben, k=F6nnen hier noch ein paar bilder von dem fertige relaisrechner anschauen:

formatting link
formatting link
formatting link
das kleine geh=E4use ist der Speicher (4byte) und das gro=DFe die Recheneinheit, plus Rest^^ also wenn ihr noch fragen habt nur zu!!

Reply to
schmitt-stefan-

Also gut: Was bezweckst Du mit über 4MB großen, 3648 × 2736 pixel messenden Bildern im Web, die man im Browser, selbst mit der wählbaren Verkleinerung um 50%, nicht im Ganzen anschauen kann?

Reply to
Frank Grob

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.