Forum: Mikrocontroller und Digitale Elektronik "Dumme" Anfängerfragen.


von Faulkater (Gast)


Lesenswert?

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

von Sandro (Gast)


Lesenswert?

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

von Thomas F. (igel)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

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.

von Fabian O. (xfr)


Lesenswert?

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

von no fear (Gast)


Lesenswert?

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

von schingdisskan (Gast)


Lesenswert?

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!

von W.S. (Gast)


Lesenswert?

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.

von Moritz M. (Gast)


Lesenswert?

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

von Elektronikkleber (Gast)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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!

von Ingo (Gast)


Lesenswert?

Cortex

von dochgast (Gast)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

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

von schingdisskan (Gast)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von schingdisskan (Gast)


Lesenswert?

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

von Maddin (Gast)


Lesenswert?

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.

von dochgast (Gast)


Lesenswert?

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

von 16Bit (Gast)


Lesenswert?

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.

von dummer (Gast)


Lesenswert?

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.

von jeder Arsch (Gast)


Lesenswert?

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.

von schingdisskan (Gast)


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

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

von immer wieder (Gast)


Lesenswert?

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.

von Faulkater (Gast)


Lesenswert?

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.

von Udo S. (urschmitt)


Lesenswert?

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

von Udo S. (urschmitt)


Lesenswert?

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 :-)

von Friend (Gast)


Lesenswert?

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.

von grauer Esel (Gast)


Lesenswert?

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?

von Naveo (Gast)


Lesenswert?

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

von Naveo (Gast)


Lesenswert?

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.

von schingdisskan (Gast)


Lesenswert?

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.

von DSD schissdisskan (Gast)


Lesenswert?

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?

von schingdisskan (Gast)


Lesenswert?

DSD schissdisskan schrieb:
> DSD schissdisskan

Lol. Sehr sachlich. Nein, das ist wirklich nicht das Problem :)

von oldmax (Gast)


Lesenswert?

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

von Faulkater (Gast)


Lesenswert?

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

von Friend (Gast)


Lesenswert?

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.

von W.S. (Gast)


Lesenswert?

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.

von Sandro (Gast)


Lesenswert?

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.

von Electronics'nStuff (Gast)


Lesenswert?

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.

von Marwin (Gast)


Lesenswert?

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

von Electronics'nStuff (Gast)


Lesenswert?

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.

von oldmax (Gast)


Lesenswert?

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

von st (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.