Hallo Leute, nun nehmt mich bitte nicht gleich auseinander, weil ich hier "dumm" frage... Aber nun zum Thema: Ich habe in meinem Leben schon viele private "Projekte" realisiert, aber alle schön "verdrahtungsprogrammiert", vor allem mit CMOS und OPV. Aber mit den heutigen technischen Möglichkeiten sehe ich nicht mehr ein, warum ich eine ganze Leiterkarte voll Standard-ICs bauen soll, nur für ein bissel Steuerung, wenn es doch Controller gibt... Es geht vorrangig um Steuerungsaufgaben in Haustechnik, Amateurfunk u.s.w. Also bleibt mir nichts weiter übrig, als mich in die µC-Technik einzuarbeiten... Denn SPS sind mir zu groß und zu Strom-hungrig... Was sind meine bisherigen Voraussetzungen: - Einen "Bastelplatz" mit Lötstation, Netzteil, Oszi u.s.w. sowie mit PC (WinXP) habe ich. - Ich habe vor längerer Zeit mal bissel auf dem Computer programmiert, aber nur ganz kleine Sachen... - in BASIC (KC-Basic, Locomotive, QBasic) - in Assembler (Z80, TASM... aber nur ein kleines bissel) - in C (Turbo-C) Dazu habe ich beruflich ein bissel mit Step5 und Step7 zu tun. Nun weiß ich nicht, wie ich anfangen soll??? Welche Controller??? Ich hatte an ATmega und ATtiny gedacht, weil preiswert, gut beschaffbar und weit verbreitet??? In welcher Sprache? - Basic? Wohl einfach erlernbar? Aber wohl nicht alles machbar... Und wohl recht Speicher-hungrig? - Assembler? Wohl für geübte Leute das beste... Aber wohl doch recht kompliziert (weil man alles "zu Fuß" machen muss), und damit fehlerträchtig? - Oder in C? Da ich ja schon mal mit C gearbeitet habe, dürfte ich da wohl wieder rein kommen? Aber geht denn alles in C zu machen? - Am liebsten wäre mir ja sowas wie Step5. Aber gibts denn sowas ähnliches für AVR? Und da tut sich schon eine spezielle Frage auf: Bei Steuerungsanwendungen sind meist viele verschiedene Zeiten notwendig, vom Milisekunden (z.B. für Tastaturabfragen, Displayansteuerungen und PWM) bis "Zeitrelais" über mehrere Tage. Und diese Zeiten sollten unabhängig von der Hauptschleife laufen, diese zeitlich möglichst wenig belasten. Nun hat aber so ein Controller miest nur 2 - 4 Timer. Gibt es (speziell in C) da schon vorgefertigte Lösungen, z.B. eine Headerdatei, die sowas als Funktionen enthält. Und zu letzt noch die Frage: Sollte ich mir besser ein Entwicklungsbord zulegen, um mich etwas einzuarbeiten, die Software zu testen. Oder kann man den "Sprung ins kalte Wasser" wagen: Controller in Sockel in Anwendungsschaltung stecken, Programm einspielen und hoffen, dass es funktioniert??? Viele Grüße, Karsten
Hi, Mit C bist du gut beraten. Man kann damit auch alles umsetzen. Assemblerkenntnisse sind für das Verständnis hilfreich. Wegen den Timern musst du dir keine Sorgen machen, da brauchst du weniger, als du denkst. Arbeite das avr-gcc-tutorial hier durch, dann wird dir das auch klar. Ich würde sagen das kannst du wagen. Steckbrett, programmer, z.B. attiny2313 oder atmega8... An z.B Software: winavr, avrstudio 4, avr tool-chain installieren.. Und ein paar Stunden später blinkt die erste LED ;) Viel Spass
Zur Programmiersprache: Ich habe zuerst auch in BASIC angefangen, da schön einfach, so mein Gedanke. Nach einer Woche war ich frustriet, da ich nie genau wusste, was der Controller jetzt eigentlich macht und bin auf Assembler umgeschwenkt. Da weiß man wenigstens was das Teil gerade genau machen soll. C ist natürlich genauso empfehlenswert, aber Assembler konnte ich schon vom C64. Zum Controller: Wenn du bei Atmel beliben willst, für die es ja eine Menge Beispielprogramme gibt, dann ist der Atmega88 ein guter Anfang. Mit dem älteren Mega8 würde ich nichts mehr machen, da der 88 doch ein paar mehr praktische Möglichkeiten bietet. Kaufen oder Löten: Meine Meinung: Nur wenn mach seine Schaltung auch selber zusammenlötet bekommt man von Grund auf ein Verständnis für den Controller. Und so ein Atmega braucht ja nur ein paar Anschlüsse um zu laufen.
Du bist natürlich der erste der hier solche Fragen stellt;) Nein, natürlich nicht. Du musst eigentlich nur mal die Foren Suche bemühen. Schau mal ganz oben auf dieser Seite. Da steht "Suchen". Deine Art von Frage kommt hier einmal am Tag.
Faulkater schrieb: > Welche Controller??? Ich hatte an ATmega und ATtiny gedacht, weil > preiswert, gut beschaffbar und weit verbreitet??? Die werden hier im Forum sehr häufig eingesetzt, sind also jede Menge Leute hier, die Dir bei Fragen sehr schnell helfen können. Außerdem gibt es viele Artikel und Tutorials. Ist also ein guter Einstieg. Nimm nicht den allerkleinsten ATtiny zum Experimentieren, damit Du auch ein paar Dinge anschließen und ausprobieren kannst. Im fertigen Projekt dann so groß wie nötig. > In welcher Sprache? Da gibts hier regelmäßig heftige Glaubenskriege zu ... ;-) Ich würde C empfehlen, ist imo das beste Maß zwischen Hardwarenähe und komfortabler Abstraktion. Mit C lässt sich im Prinzip alles machen, außer Funktionen, in denen es auf das taktgenaue Timing von Befehlen ankommt. Ist aber normalerweise nicht der Fall. Und wenn, kann man C und Assembler gut miteinander kombinieren. Wenn Du ganz genau wissen willst, wie der Mikrocontroller funktioniert, ist Assembler lernen auch ganz interessant. Aber um reale Projekte umzusetzen, die über ein paar Zeilen hinausgehen, ist das viel zu umständlich. Bei Basic (Bascom) sind im Gegensatz zu C gleich einige Bibliotheken Bestandteil der Programmiersprache, zum Beispiel zum Ansteuern von LCDs. Einfache Projekte hat man daher sehr schnell umgesetzt. Abseits davon ist man aber recht eingeschränkt: Nur eine Rechenoperation pro Zeile, keine Strukturen, ... Mein Fall wärs nicht. > Und da tut sich schon eine spezielle Frage auf: Bei > Steuerungsanwendungen sind meist viele verschiedene Zeiten notwendig, > vom Milisekunden (z.B. für Tastaturabfragen, Displayansteuerungen und > PWM) bis "Zeitrelais" über mehrere Tage. Und diese Zeiten sollten > unabhängig von der Hauptschleife laufen, diese zeitlich möglichst wenig > belasten. Nun hat aber so ein Controller miest nur 2 - 4 Timer. Gibt es > (speziell in C) da schon vorgefertigte Lösungen, z.B. eine Headerdatei, > die sowas als Funktionen enthält. Das kannst Du im Prinzip alles mit einem Timer abdecken, der jede Millisekunde einen Interrupt auslöst. Im Interrupt zählt Du dann einfach einen Zähler hoch. Mit einer einzigen 32-Bit-Variable kannst Du von 0 bis ca. 4 Milliarden zählen. Wenn Du die einmal pro Millisekunde erhöhst, ist sie erst nach drei Jahren übergelaufen. Und Du hast ja in einem Mikrocontroller nicht nur eine Variable zur Verfügung ... ;-) > Und zu letzt noch die Frage: Sollte ich mir besser ein Entwicklungsbord > zulegen, um mich etwas einzuarbeiten, die Software zu testen. Oder kann > man den "Sprung ins kalte Wasser" wagen: Controller in Sockel in > Anwendungsschaltung stecken, Programm einspielen und hoffen, dass es > funktioniert??? Naja, einmal das Programm runterschreiben, einspielen und es läuft wird (außer in trivialen Fällen) nicht funktionieren. Das ist ein iterativer Prozess. Du fängst mit einem kleinen Programm an, z.B. eine LED blinken lassen und erweiterst/korrigierst es Schritt für Schritt. Für den Anfang wär ein Board mit ein paar LEDs, Tastern, UART, vielleicht einem Textdisplay und ein paar Sensoren schon ganz gut zum Üben. Ob Du das auf einem Steckbrett selber zusammensteckst oder ein fertiges Entwicklungsboard kaufst, ist Geschmackssache. Das Entwicklungsboard vermeidet einige Fehlerquellen und somit potenziellen Furst, allerdings lernt man ja gerade daraus ...
Wenn du einen sicheren Start möchtest, nimmst du das TI Launchpad: http://www.watterott.com/de/MSP430-LaunchPad-MSP-EXP430G2 Mit 5€ bist du dabei. Dazu gibt es jetzt Grace: http://www.ti.com/tool/grace
Thomas Forster schrieb: > Ich habe zuerst auch in BASIC angefangen, da schön einfach, so mein > Gedanke. > Nach einer Woche war ich frustriet, da ich nie genau wusste, was der > Controller jetzt eigentlich macht und bin auf Assembler umgeschwenkt. Da > weiß man wenigstens was das Teil gerade genau machen soll. Aha, nach einer Woche. Und dann hast du bestimmt auch gleich komplexe Sachen in Ass. programmiert, ist ja kein Ding. LCD Routine oder DCF77, ist bestimmt auch in einer Woche gemacht. Bascom ist perfekt für Anfänger und Fortgeschrittene. Du kannst ja auch direkt Assembler in den Code schreiben wenn du willst. "Wissen was das Teil macht" solltest du in jeder Programmiersprache. Und C wird nur überall propagiert weils eben jeder Arsch nimmt. Ist wie bei Windoof oder RTL. Habe den Mut und mach es ohne C!
Faulkater schrieb: > Nun weiß ich nicht, wie ich anfangen soll??? Die meisten Leute hier sagen auf Fragen deiner Art sofort "Nimm einen Atmel und programmiere in C". Ich halte das für einen völlig falschen Rat. Du hast bislang ne Menge gemacht mit diskreter Logik. Also ist dir Logik in Form von Gattern, Flipflops und so weiter erstmal nicht fremd. Bei dieser Ausgangslage wäre es gut denkbar, daß du mit programmierbarer Logik recht gut zurecht kommst. Also solltest du dir mal ein paar Dokus von Xilinx über die eher einfacheren CPLD's von denen herunterladen, entweder Coolrunner oder die XC95er Reihe. Diese Chips sind - wenn man nicht nach den größten in der jeweiligen Reihe schielt - passabel preisgünstig und die Entwicklungssoftware kann man sich bei Xilinx frei herunterladen. Auch hier werden einige rufen "da mußt du aber sofort mit VHDL ode Verilog anfangen" und auch das ist falsch. Diese CPLD's kann man auch mit Schematics (also Schaltplan zeichnen) oder auch mit einem State-Editor (Zustände und deren Übergänge, wohl so ähnlich wie bei SPS) programmieren - und sie sind schnell. Bei den Coolrunnern sind 100 MHz Takt kein Problem. Da kann man Sachen mit machen, die mit Mikrocontrollern nicht gehen - und wenn man sie eher langsam betreibt, sind sie recht stromsparsam. Das ist also für dich eine recht ernst zu nehmende Variante. Wenn du aber mit Mikrocontrollern anfangen willst, dann solltest du dich zu allererst fragen, was draus werden soll: Willst du nur so auf dem Bastelbrett was ausprobieren oder willst du tatsächlich was bauen, das hinterher auch benutzt werden soll? In letzterem Falle such dir einen Controllertyp heraus, der so etwa das an Portbeinen und deren Funktionalitäten bietet, was dir brauchbar erscheint und fang erst garnicht mit den ollen großen DIL-Gehäusen an. Die schlucken bloß viel Platz auf der Leiterplatte, die du ja auch benötigst. Bei kleinen Bauteilen brauchst du auch bloß kleine LP, kannst mit der freien Version von Eagle arbeiten und die Anfertigung der LP kostet nicht viel. In ersterem Falle such dir im Inet ein fertiges Evalboard heraus, wo der Controller deiner Wahl bereits draufgelötet ist, die nötigste Peripherie (Spannungsregler, Quarz, Stütz-C, usw.) und ein Programmieranschluß ebenfalls mit drauf ist. Was die Wahl des konkreten Controllers betrifft, so rate ich dir, zu allererst die jeweilige Doku des beabsichtigten Kandidaten herunterzuladen und zu lesen, auch den Befehlssatz anzuschauen. Es ist nämlich so, daß die Leute Abneigungen haben. Atmel-Fans verstehen z.B. die Architektur von PIC's meist nicht so recht und umgekehrt empfinden PIC-Leute die Architektur bei den Atmel AVR als umständlich und hausbacken. Beim Lesen der Doku wirst du sicher merken, ob und was dir eher besser oder schlechter zusagt. Wenn du lieber nicht in Assembler programmieren willst, sondern in C oder Pascal (ja, das gibt's auch für ne ganze Reihe von uC's), dann rate ich dir schlichtweg ab von allen kleineren uC inclusive Atmel AVR. Leg dir dann lieber einen Cortex oder einen PIC32 zu. Da wird bei dir noch am ehesten Freude aufkommen, weil diese Liga eben nicht mit all den zerrigen Beschränkungen herumeiert, die man auf kleinen Maschinen hat, wenn man sie in Hochsprache programmieren will. W.S.
Hallo, ich würde mit den AVRs anfangen. Ein Steckbrett, ATMega (z.B. ATMega88), paar Kabel, Widerstande, LEDs und ein AVR ISP MKII. Dazu das AVR Studio. Im INet findet man haufenweise Tutorials und Schaltpläne. Als Programmiersprache würde ich dir zu C raten. Moritz
schingdisskan schrieb: > Und C wird nur > überall propagiert weils eben jeder Arsch nimmt. Ne Ärsche haben keine Ahnung, die nehmen eher ... Du bist hier falsch, gehe in ein Modding Forum, dort kannst du den King markieren, für hier fehlt es dir wohl am nötigsten. W.S. schrieb: > garnicht mit den ollen großen DIL-Gehäusen an. > Die schlucken bloß viel Platz auf der Leiterplatte, Die kann er aber zum Ausprobieren auf ein Steckbrett stecken W.S. schrieb: > Es ist > nämlich so, daß die Leute Abneigungen haben. Atmel-Fans verstehen z.B. > die Architektur von PIC's meist nicht so recht und umgekehrt empfinden > PIC-Leute die Architektur bei den Atmel AVR als umständlich Die meisten Leute hier, die regelmäßig und fundiert antworten sind völlig neutral und kennen beide Familien. Macht den Thread hier nicht durch euere Scheuklappen und Fanboy-getue kaputt! @TO: Du kennst dich mit Hardware aus, also kauf dir einen oder 2 moderne Controller mit Dil, steck die in ein Steckbrett und 1h später blinkt wahrscheinlich schon eine Diode. Bzgl. Toolchain (das sind die Programme die man zum Programmieren und Brennen braucht), lese dir hier die Tutorials durch, Suche mal nach anderen Anfängerthrads und frage bei konkreten Problemen nach. So wie du beschrieben hast was du schon gemacht hast (C und diskrete TTL/CMOS Logik) wird dir der Einstieg nicht sonderlich schwerfallen. Viel Spass
W.S. schrieb: > Faulkater schrieb: >> Nun weiß ich nicht, wie ich anfangen soll??? > > Die meisten Leute hier sagen auf Fragen deiner Art sofort "Nimm einen > Atmel und programmiere in C". > > Ich halte das für einen völlig falschen Rat. > > Du hast bislang ne Menge gemacht mit diskreter Logik. Also ist dir Logik > in Form von Gattern, Flipflops und so weiter erstmal nicht fremd. Bei > dieser Ausgangslage wäre es gut denkbar, daß du mit programmierbarer > Logik recht gut zurecht kommst. LOL, das ist der größte Unsinn, den ich bisher gehört habe. Solche Dinger programmiert man in einer High Level Definition Language und die hat überhaupt gar nix mehr mit Gattern und (boolescher-) Logik zu tun, sondern beschreibt das reine Verhalten des Chips. Die binäre Logik wird dann von den Synthesetools automatisch erzeugt. Ich halte sowohl AVR + C, als auch das schicke TI Launchpad mit den MSP430 als brauchbare Methoden um einzusteigen. Das sind beides sehr nette und einfach aufgebaute Mikrocontroller. Eins sag ich aber vorweg: In diesem Forum gibt es tendenziell mehr Hilfe bei AVRs als bei MSP430.
Ja, genau! Nimm einen Kortex, der dich mit seinen 1000den Möglichkeiten und Optionen sowie 1300 Seiten Datenblatt fast garnicht erdrückt als Anfänger... Also manche Leute... Bleib bei den 8Bittern!
Ingo schrieb: > Ja, genau! Nimm einen Kortex, der dich mit seinen 1000den Möglichkeiten > und Optionen sowie 1300 Seiten Datenblatt fast garnicht erdrückt als > Anfänger... Also manche Leute... > > Bleib bei den 8Bittern! Das sehe ich ähnlich. Schon bei einem AVR gibt es genug Fallen in die ein Anfänger tappen kann.
>> Bleib bei den 8Bittern! > >Das sehe ich ähnlich. Schon bei einem AVR gibt es genug Fallen in die >ein Anfänger tappen kann. Bleibt doch beim Pferdegespann;) Wozu Auto fahren?
Elektronikkleber schrieb: > Ne Ärsche haben keine Ahnung, die nehmen eher ... > Du bist hier falsch, gehe in ein Modding Forum, dort kannst du den King > markieren, für hier fehlt es dir wohl am nötigsten. Elektronikkleber schrieb: > Die meisten Leute hier, die regelmäßig und fundiert antworten sind > völlig neutral und kennen beide Familien. Also du nicht. Neutral ist was anderes. Du willst mir vorschreiben was ich wo poste? Sorry, ich kann dich nicht ernstnehmen. Hier ist nicht gerade die Bascom-Fankurve, klar. Aber ich bleibe dabei. Der C-Syntax ist einfach scheußlich und geht einem Anfänger gar nicht ein. Bascom ist viel anwenderfreundlicher (nicht einfacher). Und können tun beide das selbe. Einzig beim Achtbitter und Steckbrett bin ich deiner Meinung. Ist die flexibelste Entwicklungsumgebung wo gibt.
schingdisskan schrieb: > Hier ist nicht gerade die Bascom-Fankurve, klar. Aber ich bleibe dabei. > Der C-Syntax ist einfach scheußlich und geht einem Anfänger gar nicht > ein. Dann bleib dabei. Glücklicherweise steht es jedem frei das selbst zu beurteilen. Auch dem TO, der ja schon mal in C programmiert hat... > Bascom ist viel anwenderfreundlicher (nicht einfacher). Und können > tun beide das selbe. Einzig beim Achtbitter und Steckbrett bin ich > deiner Meinung. Ist die flexibelste Entwicklungsumgebung wo gibt. BASCOM ist die flexibelste Entwicklungsumgebung, die es gibt? Ich hoffe ja mal, dass du das nicht ernst meinst. Große Projekte lassen sich in BASCOM kaum sinnvoll realisieren. Für Bastler ist das vielleicht ganz nett.
Faulkater schrieb: > - Ich habe vor längerer Zeit mal bissel auf dem Computer programmiert, > aber nur ganz kleine Sachen... > - in BASIC (KC-Basic, Locomotive, QBasic) > - in Assembler (Z80, TASM... aber nur ein kleines bissel) > - in C (Turbo-C) schingdisskan schrieb: > Einzig beim Achtbitter und Steckbrett bin ich > deiner Meinung. Ist die flexibelste Entwicklungsumgebung wo gibt. Du liest nur das was du willst. Sei es drum, werde glücklich..
Für AVR hat mir das STK500 (Entwicklungsboard von Atmel) sehr geholfen. Damit programmiere ich dann Assembler und Bascom. Da sind gleich LEDs und Taster zum Testen drauf. Auch eigene Lochrasteraufbauten lassen sich damit flashen. Das Teil hat IC-Fassungen für fast alle AVR. Mehr braucht man (ich) nicht zum Entwickeln.
holger schrieb: >>> Bleib bei den 8Bittern! >> >>Das sehe ich ähnlich. Schon bei einem AVR gibt es genug Fallen in die >>ein Anfänger tappen kann. > > Bleibt doch beim Pferdegespann;) > Wozu Auto fahren? "Ich möchte Automechaniker werden. Kann ich an den 100.000€ Wagen von $teure_marke zum Grundlagen lernen oder sollte ich vielleicht doch eher mit dem alten Golf anfangen?"
Ingo schrieb: > Bleib bei den 8Bittern! Nö, heute gibt es mehr für 's Geld -> MSP430 = 16 Bit Der AVR Kram was ja gnaz nett, aber der MSP430 ist moderner und die EVA-Bords sind 'ne Wucht. Zum Einstieg oder Test kann man mit dem Launchpad keinen Fehler machen.
Faulkater schrieb: > - Oder in C? Da ich ja schon mal mit C gearbeitet habe, dürfte ich da > wohl wieder rein kommen? Aber geht denn alles in C zu machen? Also da würd ich nicht mehr lange überlegen! Verspricht schnellen Einstieg und C ist absolut angesagt für µC.
schingdisskan schrieb: > Und C wird nur > überall propagiert weils eben jeder Arsch nimmt. Ist wie bei Windoof > oder RTL. > > Habe den Mut und mach es ohne C! Die grössten Deppen schrein am lautesten.
Ist schon geil wie ihr euch da reinsteigert. Zeig doch mal ein bischen Individualismus! Obwohl bei dem "Herdentier-Nickname" wohl eher nicht.. Hier noch einen damit du dich ein bissel aufregen kannst ;) http://www.henning-thielemann.de/CHater.html
16Bit schrieb: > Nö, heute gibt es mehr für 's Geld -> MSP430 = 16 Bit > > Der AVR Kram was ja gnaz nett, aber der MSP430 ist moderner und die > EVA-Bords sind 'ne Wucht. Zum Einstieg oder Test kann man mit dem > Launchpad keinen Fehler machen. Natürlich sind 16/32 Bitter im Preisleistungsverhältnis besser. Hier geht es aber nicht darum, möglichst viel Leistung zu haben, sondern einen einfachen Einstieg zu bekommen und den hat man imo nicht wenn man mit "großen" Controllern anfängt... Später kann man immernoch umsteigen, wenn man an die Leistungsgrenzen stößt (was ich mal bezweifeln will) Ingo
Wie immer sollte man die HW der Aufgabe anpassen. Als Anfänger möchtest du doch kein Autosteuergerät entwickeln sondern eher ein paar LED zum Blinken bekommen oder ein Motörchen zum Drehen oder eine Stoppuhr bauen. Auf'm Steckbrett kannst du das locker upgraden wenn nötig. Und dann solltest du auch schon wissen, auf was es dir ankommt. Zu BASCOM vs C gibt es schon genügend threads. Wenn du C kennst, kennst du es und wirst deine Entscheidung treffen.
Erst mal vielen Dank für die zahlreichen Antworten, wobei auch viele für mich hilfreich waren. Also ich will weder nur "spielen", noch die höchsten Höhen der Programmierkunst ersteigen. Ich will einfach nur funktionierende Dinge bauen. Aber zur Einarbeitung werde ich wohl anfangs nicht um ein bissel Spielerei herumkommen... Also werde ich es so machen: - mir ein paar µCs, wohl ATmega in DIL-Gehäuse kaufen - Ein Steckbrett oder eine Lochrasterplatine nehmen, darauf eine IC-Fassung, Abblock-Cs, Spannungsregler, evtl. Quarz, und Schnittstelle mit MAX232, dann ein paar LEDs und Schalter für die ersten Versuche... - die Programmiersoftware (wohl vorrangig C) installieren. - Dann kann ich die ersten Versuche machen. - Dann noch ein Paar Versuche, die schon etwas mehr "Programmierkunst" bedürfen, wie Analogverarbeitung, 7-Segment und LCD-Ansteuerung... - Und dann könnte ich mich an die echten Projekte wagen... Ich hätte da so einige Aufgaben, die ich mit µC lösen könnte: - Steuerung meiner Werkstatt-Heizung und anderer Öl-Gebläseheizungen - Trennrelais (mit Booster), Lade- und Kühlschranksteuerung für Wohnwagen - Antennenrotor für Amateurfunk - Antennentuner-Steuerung - Rollladen-Steuerung u.s.w.
Faulkater schrieb: > Also werde ich es so machen: > - mir ein paar µCs, wohl ATmega in DIL-Gehäuse kaufen > - Ein Steckbrett oder eine Lochrasterplatine nehmen, darauf eine > IC-Fassung, Abblock-Cs, Spannungsregler, evtl. Quarz, und Schnittstelle > mit MAX232, dann ein paar LEDs und Schalter für die ersten Versuche... > - die Programmiersoftware (wohl vorrangig C) installieren. > - Dann kann ich die ersten Versuche machen. Klingt perfekt. Im Forum oben links gibts den Link AVR und auch eine Artikelübersicht unter dem sich viele gute Artikel zu 100ten von Themen verbergen. Das ist ein prima Einstieg
schingdisskan schrieb: > Ist schon geil wie ihr euch da reinsteigert. Der Einzige der sich reinsteigert und sofort beleidigend wurde bist du. Jemanden der schon C und Assembler programmiert hat Basic zu raten ist wie wenn du Leonardo da Vinci Malen nach Zahlen empfiehlst. Geh besser zurück in deinen Laufstall spielen, es muss nicht jeder richtig programmieren können, vieleicht hast du ja andere Talente. >http://www.henning-thielemann.de/CHater.html Schade ich hatte mich auf was lustiges gefreut, leider strotzt der Artikel so vor falschen oder verdrehten Infos und zeugt nur von geballter Inkompetenz. Es muss ja nicht jeder programmieren können :-)
Ingo schrieb: > Natürlich sind 16/32 Bitter im Preisleistungsverhältnis besser. Hier > geht es aber nicht darum, möglichst viel Leistung zu haben, sondern > einen einfachen Einstieg zu bekommen und den hat man imo nicht wenn man > mit "großen" Controllern anfängt Wenn man keine Ahnung hat, einfach ... ;-P Lies noch einmal hier: Beitrag "Re: "Dumme" Anfängerfragen." Der Einstieg mit MSP430 ist einfacher und kostengünstiger als mit AVR. Man kann den auch nicht verfusen und verplämpert die Zeit bei der Fehlersuche beim STK und der Datenübertragung. Also: Einstieg mit MSP430 ist einfacher, günstiger und die 16 Bit fallen nebenbei ab.
Faulkater schrieb: > Ich hätte da so einige Aufgaben, die ich mit µC lösen könnte: Och, für'n Einstieg is dat doch zu läppisch! Willste nicht gleich richtig zulangen: Blinky blinky LED mit scheduler und callbacks?
Servus, erstmal finde ich die Frage gar nicht so dumm. Jeder hat andere Vorkenntnisse und kann sich deswegen nicht unbedingt mit anderen Beiträgen identifizieren. Viele Antworten hier sind einfach nicht zweckmäßig, leider. Oft beschleicht mich das gefühl das viele nicht über das Spielereistadium hinaus kommen. Mein Rat wäre sich erst mal mit Programmierung im Allgemeinen zu beschäftigen. Vielleicht mal ein paar Programme lesen. Nicht mal auf MC basis sondern auf PC Basis. Was auch nicht schadet ist die Toolchain mit der man Arbeitet zu verstehen. Wenn du soweit bist schreibe ein paar einfache Programme. Eingabe/Ausgabe, Dateien lesen schreiben, Arrays, Kontrollstrukturen und ganz ganz wichtig Verstehe Pointer! Ja wir sind bei C. Ist es schlimm wenn man flexibel ist? Wenn du die Grundlegenden Konzepte mal verstanden hast ist es kein Problem eine andere Programmiersprache zu benutzen. Auf dem PC kannst du erst mal sauber Debuggen Erfahrung mit Elektronik schein ja vorhanden zu sein. Also dürfte die Hardware kein Problem darstellen. Ja es gibt unterschiede in der Architektur der MC aber zum Einstieg ist das Erstmal egal irgend wo muss man ja anfangen. Launchpad ist ja wirklich sehr günstig. Auch ein Arduino ist nicht schlecht zum Einstig. Du hast dich ja anscheinend schon Entschieden. Was nicht schlecht ist. Ein erfahrungsbericht wie dein Einstig gelungen ist könnte anderen Einsteigern helfen...
PS: Wenn ich das richtig sehe kannst du mit dem Launchpad auch debuggen das kann gerade beim Einstieg sehr hilfreich sein. Das solltest du dir vielleicht mal genauer anschauen.
Udo Schmitt schrieb: > Der Einzige der ... sofort beleidigend wurde bist du. Nein! Ich habe nur mal locker was zum Thema geschrieben, die Beleidigungen kamen als Reaktion darauf: Elektronikkleber schrieb: > Ärsche haben keine Ahnung, die nehmen eher ... jeder Arsch schrieb: > Die grössten Deppen schrein am lautesten. Udo Schmitt schrieb: > Geh besser zurück in deinen Laufstall spielen Lieber Udo, du bist bestimmt ein besserer Programmierer als ich. Dafür hast du andere Probleme. Du warst nicht mal angesprochen, musst dich aber einmischen. Auf eine unsachliche und beleidigende Art. Für mich ist der Drops hier gelutscht, werde mich auf keinen Kleinkrieg einlassen. Arbeite echt mal an deinem Umgangston. Auf der Straße würdest du mir jedenfalls nicht so kommen. Udo Schmitt schrieb: > vieleicht hast du ja andere Talente. Darauf kannst du einen lassen.
Udo hat vollkommen Recht! schingdisskan schrieb: > Arbeite echt mal an deinem Umgangston. > Darauf kannst du einen lassen. Schönes Beispiel. Warum nur hast du geantwortet, wenn dich das alles so kalt lässt? Kannst du keine anderen Meinungen vertragen? Hast du sonst noch Probleme?
DSD schissdisskan schrieb: > DSD schissdisskan Lol. Sehr sachlich. Nein, das ist wirklich nicht das Problem :)
Hi Es ist doch immer wieder erstaunlich, wie sensibel allein die Diskussion um eine Programmiersprache ist. Der TO schreibt doch, welche er bereits mehr oder weniger probiert hat und das er aus der SPS Welt kommt. Da liegt natürlich auch Assembler nahe, denn eine AWL ist Assembler sehr ähnlich. Auch die Erfahrung mit Z80 und Assembler wird ihm zu Gute kommen und ergänzend die Tutorials, die hier von fleißigen Menschen für Jedermann abgelegt sind. Welche Controllerwahl letztlich erfolgt, ist doch irrelevant. Vielleicht ist ein Projekt auf einer Familie gar nicht möglich und der Wechsel erforderlich. Was soll's. Der TO dürfte dann damit auch keine Probleme haben. Auch ich komm von der SPS Ecke, habe in den 80gern mit Basic begonnen und irgendwann einmal PASCAL gemacht. Da auch PASCAL nicht schnell genug für einige Anwendungen war, mußte ich Assembler einbringen. Damals noch mit Hex-Codes in InLines... sehr spaßig. Da ist AVR Studio ein Traum gegen. Also, Faulkater, laß dich nicht beirren. Entscheide dich erst einmal für ein System, beginne mit den einfachsten Projekten und bleiche flexibel in der Wahl der Elektronik. Auch bei den IC's gibt es ja verschiedene Familien. CMOS, TTL nur um einige zu nennen. Gruß oldmax
Oh, ich wollt nun wirklich keinen Streit vom Zaune brechen... Naja, Assembler hat den Vorteil, dass man dem Controller wirklich "sagen" kann, was er genau tun soll, und sich nicht drauf verlassen muss, was ein Compiler draus macht... Aber ob man wirklich ähnlich wie in AWL bei einer SPS schreiben kann, hängt dann davon ab, welche Befehle der jeweilige µC, gerade auf dem Gebiet der Einzel-Bit-Verarbeitung beherrscht. Wenn man Ports nur Byte-weise lesen und schreiben kann, und logische Verknüpfungen auch nur Byte-weise funktionieren, besteht dann der Code zum großen Teil aus Maskierung und Verschiebung... Aber stimmt schon: für meine Zwecke wäre es doch gut, wenn man so ähnlich wie in AWL schreiben könnte... Aber dann wäre noch das Problem der "Zeitrelais", die in Steuerungsaufgaben doch reichlich vorkommen, und die möglichst unabhängig voneinander laufen sollen, und das bei möglichst wenig benötigter Prozessorzeit... Aber wenn man schon mal einen µC vor sich hat, der AD-Wandler besitzt, beseht die "Verführung" die Analogverarbeitung gleich mit zu machen. Und dort stelle ich es mir in Assembler recht kompliziert vor, weil da doch so einiges an Mathematik erforderlich ist. Ich stelle mir z.B. vor, was ich für Aufwand treiben müsste, wenn ich einen PID-Regler mit "einbauen" wollte. Ind dem Fall wäre C da wohl die bessere Wahl. Da meine "Projekte" letzlich in fertigen Platinen enden sollen, und meine "Technologie" nich so feine Strukturen ermöglicht, sollten die von mir verwendeten Controller möglichst in DIL-Gehäuse daherkommen, was die Auswahl doch erheblich einschränkt...
Faulkater schrieb: > Naja, Assembler hat den Vorteil, dass man dem Controller wirklich > "sagen" kann, was er genau tun soll, und sich nicht drauf verlassen > muss, was ein Compiler draus macht... Der Compiler sollte keinen Beta Stand haben, dann geht das schon. Faulkater schrieb: > Aber ob man wirklich ähnlich wie in AWL bei einer SPS schreiben kann, > hängt dann davon ab, welche Befehle der jeweilige µC, gerade auf dem > Gebiet der Einzel-Bit-Verarbeitung beherrscht. Wenn man Ports nur > Byte-weise lesen und schreiben kann, und logische Verknüpfungen auch nur > Byte-weise funktionieren, besteht dann der Code zum großen Teil aus > Maskierung und Verschiebung... ASM ist doch nicht AWL. Und eine SPS wird auch nicht mehr in AWL programmiert. Den Einstieg ist über eine Hochsprache besser. Mit der Erfahrung und wachsender Kenntnis über den speziellen MC kann man ASM Teile einbinden. Die meisten embedded Programmierer brauchen kein ASM. Es erschwert auch die Portierbarkeit. Faulkater schrieb: > Ich stelle mir z.B. vor, was > ich für Aufwand treiben müsste, wenn ich einen PID-Regler mit "einbauen" > wollte. > Ind dem Fall wäre C da wohl die bessere Wahl. Ja, genau. Es gibt reichlich Code Sammlungen. Und in einer Hochsprache lassen die sich leichter einbinden. Nimm ein billiges fertiges Board und übe mit C die ersten Schritte.
Faulkater schrieb: > Aber ob man wirklich ähnlich wie in AWL bei einer SPS schreiben kann, > hängt dann davon ab, welche Befehle der jeweilige µC, gerade auf dem > Gebiet der Einzel-Bit-Verarbeitung beherrscht. Bei deinen Worten kommt mir wirklich ganz heftig der gute alte ARM in den Sinn: Dort sind die Ports zwar auch in 16 oder 32 Bit großen Wörtern organisiert, aber die Steuerung der einzelnen Bits ist gut durchdacht mit 'Quasi'-Registern zu Setzen und Löschen von einzelnen Bits ode Bitgruppen in jedem Port. Mal ein (prinzipielles) Beispiel in C: PORT2CLR = (1<<5); PORT2SET = (1<<6); Der erste Befehl löscht vom Port2 das Pin 5 und der zweite setzt das Pin 6. Sieht doch freundlich aus - oder? Ansonsten solltest du dir hier keine Angst machen lassen. Für ARM und Cortex gibt es schier unzählige Beispiele, vom simplen Blinky oder "Hello World" angefangen bis zu sonstwas. Da ist auch für dich was dabei, um binnen kürzester Zeit zum ersten Erfolg zu kommen. Zum allerersten Einarbeiten kannst du dir auch bei Pollin für wenig Geld ne SwissBetty-Fernbedienung kaufen und die zusammen mit dem hier vorhandenen Lernbetty-Projekt zum Einstieg benutzen. Viel falsch machen kann man für rund 4 Euro nicht. Faulkater schrieb: > Aber dann wäre noch das Problem > der "Zeitrelais", die in Steuerungsaufgaben doch reichlich vorkommen, Siehste, in der Lernbetty gibt es "Delayed Events", die man starten kann und die dann nach einer wählbaren Zeit aktiv werden. Guck dir einfach an, wie das gemacht ist und adaptiere das dann für deine eigenen Projekte. W.S.
Man könnte auch eine neue Sprache entwickeln. Ist "AWL+" schon vergeben? Nur kurz einen Compiler schreiben - nicht, dass der Controller dann etwas anderes machen würde, aber dann kann man Bits hin und her schieben wie es einem am ästhetischsten erscheint. Doch halt, schreibt man den Compiler jetzt besser in C oder in Bascom? Es ist ein Dilemma.
Solltest du dich wirklich für AVR entscheiden, bitte tue dir selbst den gefallen und kauf dir den originalen AVRISP MKII. Ein super Beispiel dafür, dass du dir uneeeendlich viel Ärger ersparen kannst: Beitrag "AVR-Tutorial: Equipment wird nicht erkannt" Es KANN selbstverständlich auch mit den billig-Programmern für 5€ aus China funktionieren. Die Chance, dass da etwas nicht klappt, ist allerdings grösser. Und was ich noch gut fand (nicht allgemein gültig, ich fand' es allerdings viel weniger umständlich): Mit dem AVRStudio 5 (und aufwärts) geht das programmieren viel weniger umständlich. In einem Klick kompiliert dein Programm und flasht direkt den µC, das geht keine Sekunde. Der (aus meiner Sicht) sehr lästige Umweg über Makefiles und WINAVR bleibt dir so erspart, du erledigst alles mit einem Tool.
>nun nehmt mich bitte nicht gleich auseinander, weil ich hier "dumm" frage...
Dumm sind die Anfaengerfragen per se nicht, dumm ist nur immer wieder
Fragen zu stellen, die zig Anfaenger zig mal schon gefragt haben. Da
muss man sich ueber die niedrige Antwortsqualitaet nicht wundern. Und
besonders niedrig wird die, wenn man vorher noch dick auftraegt, dass
man eigentlich schon ein alter Hase ist.
Marwin schrieb: > wenn man vorher noch dick auftraegt, dass man eigentlich schon ein alter >Hase ist. Faulkater schrieb: > - Ich habe vor längerer Zeit mal bissel auf dem Computer programmiert, > aber nur ganz kleine Sachen... Extrem dick aufgetragen, was? Der strotzt ja nur so vor Arroganz! @Marwin komm doch mal runter von deinem hohen Ross.
Hi >Aber stimmt schon: für meine Zwecke wäre es doch gut, wenn man so >ähnlich wie in AWL schreiben könnte... Aber dann wäre noch das Problem >der "Zeitrelais", die in Steuerungsaufgaben doch reichlich vorkommen, >und die möglichst unabhängig voneinander laufen sollen, und das bei >möglichst wenig benötigter Prozessorzeit... Zeiten erledigt der Timer. Wenn du dich mal mit Ereignissteuerung beschäftigt hast, dann wirst du schnell erkennen, das auch ein µC Ereignisse bearbeiten kann. Da gibt es einen internen Timer, der den Systemtakt zählt. Aufgrund der Frequenz läßt sich nun bestimmen, wie weit er zählen muß, um 1 mSek zusammen zu bekommen. Dann meldet er sich mit einem Interrupt. In der ISR kannst du nun alle erforderlichen Zeiten ableiten und Eventflags setzen. Diese werden im Programm abgefragt und bearbeitet. Dabei wird die Hauptschleife nur belastet, wenn ein Eventflag bearbeitet wird. Hier zum Verständnis mal einen Pseudocode: If 350_MSek_Flag then tu dies tu das 350_MSek_Flag =0 end If Natürlich ist AWL und Assembler vom Syntax nicht gleich. Dennoch ist das Lesen einer AWL ähnlich Assembler. Auch hier wird in der Regel die Arbeit in Registern gemacht. Der Code liest sich ähnlich der Assembler-Mnemonik. Wer behauptet, AWL ist Out, der hat noch nie Funktionen in S5 oder S7 geschrieben, die sich nicht mit KOP, FUP oder CFC abbilden ließen. Ich geb aber zu, das die Voraussetzung für AWL immer seltener wird. Ob es vielleicht daran liegt, das es Programmierer gibt, die für Kop und Fup fertige Funktionen in AWL programmieren ? Zum Thema welche Sprache. Ich persönlich bin da völlig frei. C kann ich (noch) nicht und meine Anwendungen haben auch nicht so mathematisch komplizierte Routinen, das ich es nicht mit Assembler erschlagen kann. Sollte doch einmal mehr Mathematik erforderlich sein, denke ich auch, die Sprache entsprechend auszuwählen. Hab ich aber rein binäre Bearbeitung, dann bin ich mit meiner Assemblerkunst zufrieden. Letztlich wird dieses jeder für sich entscheiden . Das Ergebnis zählt. Wenn das Projekt fertig ist, dann spielt die Entwicklungsebene keine große Rolle mehr. Zumindest im privaten Bereich und bei den kommerziellen Projekten geht ohne Hochsprachen i.d.R. gar nichts. Nimm das mit: du wärest falsch berraten, wenn du dich nach Meinung anderer richtest. Nimm das, wo du deine Projekte mit umsetzen kannst. Gruß oldmax
nimm dir ein stm32Discovery fuer 8 euro. Da ist alles bei und Beispiele gibts auch genug. Die sind fast genauso einfach zu programmieren wie ein AVR.
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.