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 ...
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?
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