Forum: Mikrocontroller und Digitale Elektronik Welche Programmiersprache?


von Jörg P. R. (jrgp_r)


Lesenswert?

Hallo Leute!

Ich habe mich hier im Forum nun anstecken lassen und will in's 
Programmieren von erst mal Miniprogrammen für Atmel einsteigen.
Ich habe hier erst mal gelesen und dann aus der Bücherei mir mal das 
Buch "Phyton 3" ausgeliehen. Ich habe hier einen Raspi B und auch mal 
angefangen Phyton zu programmieren. Ich habe aber das Gefühl das dieses 
nicht die geeignete Sprache dafür ist.
Ich stehe nun vor der Entscheidung Assembler, Bascom oder C.
Ich weiß das hier schon gefühlt mindestens 2500 mal die Thematik 
durchgekaut wurde, was mich aber nun konkret nicht weiterbringt.
Also nun zum 2501 male die Frage:
Welches von dreien ist eher geeignet für einen Anfänger, der in Theorie 
eine Null ist und Learning by doing braucht?
Entsprechende Litaratur in Deutsch darf hier auch Empfohlen werden.
Und dann gleich die Grundausstattung in Hardware.
Ich benutze Linux und auch Windows.

Danke vorab
Jörg

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Jörg P. R. schrieb:
> Ich habe hier einen Raspi B und auch mal
> angefangen Phyton zu programmieren. Ich habe aber das Gefühl das dieses
> nicht die geeignete Sprache dafür ist.

Aber genau dafür wurde das Board entwickelt! Wenn das deiner Meinung 
nach nicht zusammen passt, dann bin ich einmal auf deine Meinung zu 
Atmel (du meinst AVR?) gespannt.
Ich freue mich auf deinen ersten Beitrag zum AVR: Ich habe meinen µC 
verfused ...
;-)))))))

von Philipp W. (johnnyflash)


Lesenswert?

Jörg P. R. schrieb:
> Welches von dreien ist eher geeignet für einen Anfänger, der in Theorie
> eine Null ist und Learning by doing braucht?

Was unterscheidet diese Anforderung von den anderen 2500?

von marixstorm (Gast)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Ich freue mich auf deinen ersten Beitrag zum AVR: Ich habe meinen µC
> verfused ...

LOL, davon gab es ja in letzter Zeit genug Beitraege. Vermutlich wird er 
aber nicht wissen, das der AVR verfust ist - der Beitrag wird also eher 
in Richtung "Mein AVR funktioniert nicht mehr..." lauten.

@Jörg P. R.

Ich wuerde dir C dringend empfehlen. Ggf. seh' dir doch mal 
http://matrixstorm.com/avr/tinyusbboard/ an.

MfG

von Svenska (Gast)


Lesenswert?

Raspberry Pi mit Linux = gewöhnlicher Computer.
Nimm, was immer du willst und für die zu lösenden Aufgaben angemessen 
ist.

von Jörg P. R. (jrgp_r)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Aber genau dafür wurde das Board entwickelt!

Ich wollte ja nicht den Raspi programmieren, sondern Programme die z.b. 
auf einen Atiny mit entsprechender Hardware laufen.

@marixstorm

Du meinst also C. Das ist schon mal ein Anfang. Die Site werde ich mir 
morgen mal in Ruhe reinpfeiffen, obwohl ich schlecht Englisch kann.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Jörg P. R. schrieb:
> Ich wollte ja nicht den Raspi programmieren, sondern Programme die z.b.
> auf einen Atiny mit entsprechender Hardware laufen.

Du hast dir einen PI gekauft, um einen AVR (wusste ich es doch: Atmel = 
AVR) zu programmieren? Puhh, das wird ein langer Weg für Dich.

Ja, für AVR geht nur C oder für die harten Jungs (mit zuviel Zeit) auch 
ASM.

von marixstorm (Gast)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Ja, für AVR geht nur C oder für die harten Jungs (mit zuviel Zeit) auch
> ASM.

Naja, es gibt ja auch noch BASCOM oder Arduino.
Dazu ist aber zu sagen: BASCOM kostet Geld und Arduino ist im Prinzip 
C++.

C(++) dagegen gibt es fuer LAU und auch in verschiedenen Versionen.

MfG

von Weingut P. (weinbauer)


Lesenswert?

Nicht die Hardware bestimmt die Aufgabenstellung, sondern die 
Aufgabenstellung die Hardware.

Es steht also am Anfang erstmal was soll im Endergebnis entstehen, dann 
sucht man sich die passende Hardware dazu aus und dann werkelt man sich 
in die Programmiersprache für eben die Hardware zur Aufgabe.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

marixstorm schrieb:
> Naja, es gibt ja auch

tausend ander Dinge. Ja nee, ist klar. Aber sinnvoll ist nur C oder ASM.

Wenn du noch nicht am AVR hängst, kannst du günstig mit dem MSP430 und 
dem Launchpad starten. Für die paar Euros macht man nix verkehrt.

von Vn N. (wefwef_s)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> harten Jungs (mit zuviel Zeit) auch
> ASM.

Auch wenn es natürlich nur bedingt sinnvoll ist, zuminest 
Grundkenntnisse in ASM sind durchaus Gold wert, wenn man tiefer 
einsteigen will. Allein schon, weil man mal versteht, was z.B. ein 
Funktionsaufruf in C (oder letztenendes jeder beliebigen Sprache) so 
macht, warum manche Dinge auf der jeweiligen Prozessorarchitektur 
effizienter sind als andere, warum "foo |= 1<<BAR" kritisch sein kann, 
wenn auf foo sowohl aus Interrupts als auch dem Hauptprogramm 
zugegriffen wird, etc. pp.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

vn nn schrieb:
> warum "foo |= 1<<BAR" kritisch sein kann,
> wenn auf foo sowohl aus Interrupts als auch dem Hauptprogramm
> zugegriffen wird

volatile ist C und nicht ASM ;-)))

Reicht ASM denn für deine Zwecke, oder muss man nicht die DIE Strukturen 
analysieren? ;-)))

Mal ehrlich, C und die Kenntnis über die Hardware (Handbuch) reichen zur 
Nutzung eines µC schon aus. Und die harten ...    Aber das hatten wir 
schon.

von Janeistklar (Gast)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Ja, für AVR geht nur C oder für die harten Jungs (mit zuviel Zeit) auch
> ASM.

Aha,
C Programme schreibt man in 5 Minuten, aha.
Den kryptischen C-Müll lernst du keine Sekunde schneller als ASM.

Was willst du denn Programmieren?
Ne blinkende LED ist in C, Bascom und ASM nicht das Maß der Dinge, 
obwohl die viele Möchtegern-C-Progger hier schon scheitern.

Programmieren bedeutet, logische Abläufe und Strukturen zu erstellen.
Die "Sprache" ist nur das Werkzeug, nicht die Lösung.

Hier im Forum gibt es wirkliche Könner für jede Sprache. Die findest du 
sicher sehr schnell. Und dann siehst du, dass nicht die Sprache den 
Unterschied macht, sondern das Zeug zwischen den Ohren und natürlich die 
Übung.
Also, niemand kann die sagen, mit welcher Sprache du "besser dran" bist.
Jede geht.
Zur Orientierung hier meine Erfahrung:
Mit Bascom gehen einfache, nicht komplexe Sachen sehr schnell. Also 
IO-Funktionen, ADC, LCD, SPI, I2C, RC5.. alles vorgefertigt. Nur lernt 
man bei plain-bascom nichts über die Hardware. Du kommst damit weit, nur 
wenn es z.B. mal darum geht, 2 LCD am AVR anzusteuern, sehen die meisten 
schon alt aus. Hier werden chirurgische Eingriffe in Bascom 
erforderlich, hier muss unter die Oberfläche gegangen werden. Es geht, 
ja. Hardwarekenntnis erlangt man in Assembler am besten. Fang damit an. 
ASM ist wirklich einfach, die Tutorials sind gut, der Rest steht mit 
Beispielen im Datenblatt des AVR. Wenn du dir gleichzeitig noch Bascom 
anschaust, weißt du auch, wie man in Bascom die 2 LCD ansteuert, um zum 
Beispiel zurück zu kommen. Und irgendwann stellst du fest, dass du Basic 
eigentlich gar nicht mehr brauchst..

Arduino.. ähm.. die Werbung dazu gaukelt dem Anfänger vor, dass er damit 
die uC Welt einreißen kann.. Programmieren lernt damit keiner, die 
Zielgruppe ist auch ganz anders definiert. Wer C und C++ beherrscht, 
kann mit Arduino was anfangen, wird das idR aber nicht für notwendig 
erachten.

C..damit geht alles. Zusätzliche Prozessor Kenntnis sind auch hier vom 
Vorteil, nur C zu lernen und richtig anwenden zu lernen erfordert die 
meiste Zeit und Ausdauer.


Tom

von Janeistklar (Gast)


Lesenswert?

vn nn schrieb:
> warum "foo |= 1<<BAR" kritisch sein kann,
> wenn auf foo sowohl aus Interrupts als auch dem Hauptprogramm
> zugegriffen wird, etc. pp.


Hier weiß natürlich jeder Anfänger sofort worum es geht. Danke für das 
leer-reiche Beispiel. Und das ist auch ja das tolle, schöne, ja gölltich 
Vollkommene an dem Sch**ß C.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Watt nenn Müll.

ASM ist zu Fuß und C mit einem Auto. Zu Fuß sehe ich jede Ameise und 
kann die Laternenpfähle zählen. Das Auto ist bequemer und einen 
Führschein braucht man eh. So einfach ist das.

von Janeistklar (Gast)


Lesenswert?

Ja, klar, wenn man die fertigen Bibliotheken richtig einsetzen kann, mag 
das stimmen.
In ASM geht das aber genau so gut, einmal die Funktionen gebastelt oder 
kopiert und verstanden hat man mächtige Werkzeuge zur Hand und die volle 
Kontrolle über das Geschehen.

Wunder gibt es immer wieder ... schrieb:
> Watt nenn Müll.

den du hier von dir gibst. Erst denken... oder gibt es da grad keine Lib 
für?

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Janeistklar schrieb:
> In ASM geht das aber genau so gut, einmal die Funktionen gebastelt oder
> kopiert und verstanden hat man mächtige Werkzeuge zur Hand und die volle
> Kontrolle über das Geschehen.

auf einer bestimmten Hardware oder µC Familie. Wie bringe ich in ASM 
meine super tolle Berechnung auf einer andere HW, wenn das Ding einen 
anderen Befehlssatz hat? Tolle Sackgasse, toller Tipp!

Aber du merkst gar nicht, wie du selber in Richtung Hochsprache wankst. 
Erst reiner ASM, dann Makro ASM, fertige Bibliotheken und, und, und, 
dann C. Du bist am Ziel!

von Michael G. (mjgraf)


Lesenswert?

Reicht mir mal bitte jemand das Popcorn?

(Im Ernst: Da weist der OP schon darauf in, dass die Diskussion hier 
schon 2.500 mal geführt wurde, und ihr führt sie zum 2.501 Mal?)

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Kein Problem, das geht beim 2502tenmal auch noch.

Es wäre doch Schade, wenn ein Newbee mit alten Karmelen gefüttert wird. 
Leider versteht nicht jeder, dass die Welt sich (auch ohne ihn) weiter 
dreht.

von Tommy T. (thomas_k86)


Lesenswert?

Die Elektronik hat mich von Kind auf immer wieder Fasziniert.Einige male 
habe ich auch mit sämtlichen Gegenständen in sämtliche Steckdosen 
rumgefuchtelt. Faszinierend war dabei auch (ich war 4 und 5 Jahre)das 
ich mir einige male die kleinen Finger verbrannte und dann auch mal 
wieder garnichts passiert war. 30 Jahre später hatte ich es satt,mich 
ständig mit Riesen Schaltungen die sowiso ungenau sind (NE555) 
rumzuschlagen und wagte mich an die Programmierung von Atmels 
Mikrocontroller.Ich versuchte mich an ASM dan an C,C++.Nachdem ich mir 
alles selbst erlernen muss,dachte ich,ich muss das wieder aufgeben.Ich 
kapierte es einfach nicht.Plötzlich stolperte ich über Bascom AVR.Siehe 
da,es wird schon langsam.Also Zeitsteuerungen,Displaylösungen,Uhren... 
sind ab nun in kürzester Zeit kein Problem mehr.Grund:Bascom ist für 
mich einfach verständlicher.Bis 4 Kb Gratisdownload.

von Rush (Gast)


Lesenswert?

Jörg P. R. schrieb:
> obwohl ich schlecht Englisch kann.

Ich glaube es nicht,......
Wie soll das was werden, wenn man nicht einmal die Datasheet versteht.

von Rush (Gast)


Lesenswert?

Tommy Tomatronic schrieb:
> Bascom AVR

Bascom ist sehr fern der Hardware...
ASM oder C, dann lernt man die Welt wirklich zu verstehen.

von Vn N. (wefwef_s)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> volatile ist C und nicht ASM ;-)))
>
> Reicht ASM denn für deine Zwecke, oder muss man nicht die DIE Strukturen
> analysieren? ;-)))

5, setzen. Es geht um atomare Zugriffe, nicht um volatile Variablen.

Janeistklar schrieb:
> Hier weiß natürlich jeder Anfänger sofort worum es geht. Danke für das
> leer-reiche Beispiel. Und das ist auch ja das tolle, schöne, ja gölltich
> Vollkommene an dem Sch**ß C.

Süß. Natürlich weiß ein Anfänger nicht, um was es da geht, sonst wäre er 
ja kein Anfänger (weißt du, das ist nämlich die Definition eines 
Anfängers: er weiß gewisse Dinge nicht).
Natürlich ist das auch kein C-spezifisches Problem, aber das kannst du 
ja nicht wissen.

Janeistklar schrieb:
> Ja, klar, wenn man die fertigen Bibliotheken richtig einsetzen kann, mag
> das stimmen.
> In ASM geht das aber genau so gut, einmal die Funktionen gebastelt oder
> kopiert und verstanden hat man mächtige Werkzeuge zur Hand und die volle
> Kontrolle über das Geschehen.

Es soll doch tatsächlich Leute geben, die auch in C ohne fertige 
Libraries auskommen. Aber kerne kannst du mal eine Firmware mit >100kB 
compiliertem Code inkl. Anlagensteuerung und diverser Serverdienste in 
ASM schreiben. Viel Spaß.

von Tommy T. (thomas_k86)


Lesenswert?

Rush schrieb im Beitrag #

> ASM oder C, dann lernt man die Welt wirklich zu verstehen.

Ja schon,aber kann man sich diese auch wirklich selbst erlernen?Ich habs 
nicht geschaft. Es mag auch daran liegen,dass ich bis zu dem Tag der 
entscheidung mich mit dem programmieren zu beschäftigen,noch nicht 
einmal ansatzweise gewust habe wie das eigendlich alles funktioniert.

von Vn N. (wefwef_s)


Lesenswert?

Tommy Tomatronic schrieb:
> Ja schon,aber kann man sich diese auch wirklich selbst erlernen?Ich habs
> nicht geschaft.

Es hilft ungemein, nicht irgendwelche halbgaren Tutorials zu verwenden.

von Tommy T. (thomas_k86)


Lesenswert?

vn nn schrieb:

>
> Es hilft ungemein, nicht irgendwelche halbgaren Tutorials zu verwenden.

Da muss ich dir wieder recht geben. Ich habs mit den unterlagen und 
programmen von myavr versucht.Alles was ich heute noch mit dem myavr 
mache,ist das setzen der Fuses,denn da kann fast nix schief gehen. :)

von wurscht (Gast)


Lesenswert?

> Ich stehe nun vor der Entscheidung Assembler, Bascom oder C.

Ein paar Alternativen gibt es schon noch, siehe

http://avr.myluna.de/doku.php

Und wie alles im Leben muss es nicht immer heißen "entweder-oder". Es 
kann auch heißen "sowohl als auch".

von Martin V. (oldmax)


Lesenswert?

Hi
OK, wenn es im Forum langweilig wird oder zu den Themen keine Beiträge 
einfallen, macht man sich mal wieder den Glaubenskrieg auf. Leute, egal 
welche Sprache ihr sprecht, das Programm und die Struktur führt zum Ziel 
und ob C, ASM oder BASCOM, im Controller sind eh nur "1" en und "0" en. 
Seid froh, das ihr nicht noch binär codieren müsst.
Du diese Aussage:
>Es soll doch tatsächlich Leute geben, die auch in C ohne fertige
>Libraries auskommen. Aber kerne kannst du mal eine Firmware mit >100kB
>compiliertem Code inkl. Anlagensteuerung und diverser Serverdienste in
>ASM schreiben. Viel Spaß.
ist exakt auf einen Anfänger zugeschnitten, der mal grad eine LED 
blinken lässt. Bleibt doch mal auf dem Teppich. Auch 100K Code zu 
schreiben, ob in ASM oder C ist keine Kunst. Und du kannst auch in 
beiden an eine Stelle gelangen, wo du deinen Code in die Tonne koppst, 
weil du den Faden verloren hast. Aber diese Aussage trifft auf 
fortgeschrittene zu, ein µC hat vielleicht 8k, vielleicht 32 K Speicher. 
Zumindest die, die für einen Anfänger in Frage kommen, und die voll zu 
kriegen ist schon ein ziemlich großes Projekt.
@Jörg
Es ist ja bisher schon geschrieben worden: es ist egal, welche Sprache. 
Und es kann durchaus sein, das du C nimmst und feststellst, das in ASM 
das ein oder andere besser geht. Ich kann (z.Zt.) nur ASM und kann auch 
nur da mitreden. Brauch ich mal mathematische Funktionen, dann nehm ich 
sicherlich auch eine etwas höhere Sprache. Dann lern ich eben C oder 
BASCOM oder was auch immer. Die Frage, wofür soll ich mich entscheiden 
ist falsch, wenn es die Sprache betrifft. Die Frage, die allerdings nur 
du auch beantworten kannst ist: "was will ich machen?"  Was hast du dir 
vorgestellt? Soll es tatsächlich nur eine LED blinken lassen, dann 
erfreu dich am NE555 und lass die Controller. Die kosten nur Zeit und 
Geld. Erst, wenn du eine richtige Herausforderung hast, arbeitest du mit 
einem Ziel, welches nicht langweilig wird.  Auch wenn es am Anfang nur 
eine blinkende LED ist.
Gruß oldmax

von X. A. (wilhem)


Lesenswert?

Hallo Jörg,

ich nehme an, du stehst gerade vor dem Anfang und bist von den tausenden 
möglichen Boards und Mikrocontrollern überwältig.
Laut meiner Erfahrung solltest du deine Entscheidung durch deine Ziele 
am besten definieren. Ich würde es so zB vereinfachen:

- Anwendungsorientiert: in diesem Fall ist dir egal, wie die 
Mikrocontroller und die unterliegende HW funktionieren, sondern ist es 
dir wichtig ein System bedarforientiert zu entwicklen. In diesem Fall 
dann lieber C lernen (es ist noch für eingebetteten Systeme am besten 
geeignet) und Applikationen mit deiner Rasp Pi entwicklen. Mit der C 
Sprache kommst du auch mit anderen Entwicklungsplatinen bald zurecht 
(Arduino, Teensy, STM32F..., PIC18, usw...);

- Lernorientiert: hier willst du deine ersten Schritte in der Welt der 
Mikrocontroller bewegen und dabei lernen, einen Mikrocontroller anhand 
seinen Registern zu steuern. ZB wie man einen Timer anstellt, abliest, 
einen Register modifieziert. Hier bleibt die Assembler Sprache ein must. 
Mit einfachem Mittel (ATtiny und einem Programmer) kannst du schon 
kleine Programme schreiben.

Die Reihenfolge ist völlig unabhängig. Du kannst erst C lernen und 
Erfahrung sammeln und dann die Architektur vertiefen. Oder umgekehrt.
Dennoch hängt die Programmierungssprache ab, was du mit den 
Mikrocontollern machen willst.

Gruß

von wurscht (Gast)


Lesenswert?

Leute, merkt ihr eigentlich noch welche Widersrüche eure Tipps für 
Anfänger enthalten?

Ein Paradebeispiel dafür (gekürzt):

Dave Anadyr (wilhem) schrieb:

> Ich würde es so zB vereinfachen:

> - Anwendungsorientiert: in diesem Fall ist dir egal, wie die
> Mikrocontroller und die unterliegende HW funktionieren

> In diesem Fall
> dann lieber C lernen

Gerade wenn es einem "EGAL" ist wie µC und HW im Detail funktionieren, 
wie hier geschrieben wurde, braucht man auch nicht ausgerechnet eine DER 
SPRACHEN (wie C oder ASM) zu wählen, die man GENAU AUS DIESEM GRUND 
wählt, um die volle Kontrolle über alles zu haben und über jedes Detail 
bitgenau bescheid zu wissen.

Hochsprachen wie BASCOM sind bei Anfängern und Leuten die den 
Lernaufwand überschaubar halten wollen deshalb so beliebt, weil sie 
KOMPLEXITÄT verbergen und prägnante, mächtige Sprachbefehle dem Anwender 
bereitstellen und damit den Vorgang des µC-Programmierens aufs 
WESENTLICHE reduzieren, nämlich das Ergebnis!

Damit liegt der Schwerpunkt des µC-Programmierens aus (dieser) 
Anwendersicht in einer ganz anderen Ecke als bei der 
Register-Bitfummelei mittels Assembler und C, bei der man einen viel 
tieferen Einblick in die internen Abläufe der HW sich auf die Schultern 
lädt bzw. laden muss.

von X. A. (wilhem)


Lesenswert?

@wurscht: du kannst einfach sagen, dass du BASCOM als 
Programmierungssprache neben C als geeignet findest, statt dich 
aufzuregen.
Und wie in den alten Beiträge werden wir alle nie auf eine geimeinsame 
Lösung kommen, da jeder seine Erfahrungen und Meinungen dazu hat.

von wurscht (Gast)


Lesenswert?

Dave Anadyr (wilhem) schrieb:

> @wurscht: du kannst einfach sagen, dass du BASCOM als
> Programmierungssprache neben C als geeignet findest, statt dich
> aufzuregen.

Darum ging es gar nicht und ich bin ich kein "BASCOM'er". Du hast nur 
ausgerechnet für C dir die falschen Argumente geschnappt, die viel eher 
auf komplexe Hochsprachen wie BASCOM passen.

Anders ausgedrückt, wenn man für C wirbt (dagegen ist nichts 
einzuwenden), dann bitte schön mit den VORTEILEN die C gegenüber solchen 
Hochsprachen wie BASCOM bietet, die mit vielen komplexen (oder 
aufwendigen) Befehlen arbeiten (wie man sie klassisch von 
BASIC-Dialekten her kennt).

von Till (Gast)


Lesenswert?

LunAavr!


Schau es dir an!

von X. A. (wilhem)


Lesenswert?

@wurscht: hier geht es darum, einem Anfänger das Leben zu vereinfachen, 
und nicht weiter die Vor- Nachteile einer Programmierungssprache 
gegenüber einer anderen aufzulisten.
Wenn er mittles einer Platine Applikationen entwickeln kann, und dafür 
eine "einfache" und intuitive Programmierungssprache braucht, dann kann 
er mit C oder mit BASCOM (vielleicht, ich kenne diese nur von Namen) 
anfangen.
Wenn er eher einen Bedarf an die Entdeckung der Mikroarchitektur hat, 
dann lieber Assembler lernen.

Schönen Tag noch!

von Janeistklar (Gast)


Lesenswert?

vn nn schrieb:
> Aber kerne kannst du mal eine Firmware mit >100kB
> compiliertem Code inkl. Anlagensteuerung und diverser Serverdienste in
> ASM schreiben. Viel Spaß.

Das macht in ASM sicher nicht so viel Spaß, Ich behaupte aber, dass das 
in C genau so viele oder wenige Leute hinbekommen wie in ASM. Ist eine 
Frage des Könnens, nicht der Sprache und sicher kein Anfängerprojekt.

Rush schrieb:
> Bascom ist sehr fern der Hardware...
> ASM oder C, dann lernt man die Welt wirklich zu verstehen.

Die Frage ist, ob die zu lösende Aufgabe denn Hardwarenähe erforderlich 
macht. Für die meisten einfachen Bastelaufgaben ist das nicht der Fall. 
Sollte es doch mal taktgenau zugehen müssen, kann man sich in Bascom 
sehr einfach mit Inline Assembler behelfen. Der Simmmulator gibt 
genaueste Auskunft über die von Bascom verwendeten und veränderten 
Register. Der ASM Eingriff ist ohne Umwege möglich, nicht so ein 
Gezehder wie in C.

Bei genauer Kenntnis der Basic-internas lassen sich sogar die ASM 
Routinen der Befehle selbst benutzen, Bascom als Macroassembler.

Hier im Forum wird immer viel mit Extremen gearbeitet und Hobby mit 
Beruf vermischt.

Tom

von Roland R. (Gast)


Lesenswert?

probiers doch mal damit: http://www.avr-cpp.de ;-)

Gruß R.

von wurscht (Gast)


Lesenswert?

Dave Anadyr (wilhem) schrieb:

> @wurscht: hier geht es darum, einem Anfänger das Leben zu vereinfachen,

Eben drum!

> und nicht weiter die Vor- Nachteile einer Programmierungssprache
> gegenüber einer anderen aufzulisten.

Doch, das gehört zur Meinungsbildung dazu. Wie will er sonst 
Unterschiede erkennen und für sich eine angemessene Entscheidung 
treffen?

> Wenn er mittles einer Platine Applikationen entwickeln kann, und dafür
> eine "einfache" und intuitive Programmierungssprache braucht, dann kann
> er mit C ..

Ich versuche dir die ganze Zeit hier begreiflich zu machen, dass für 
viele Anfänger "C" WEDER einfach NOCH intuitiv ist. Anders ausgedrück, 
wäre es so, würden Fragen wie hier des TE erst gar nicht gestellt.

Wenn ein Neuling nach einer EINFACHEN Programmiersprache um 
Windows-Programme zu schreiben fragt, würdest DU dann die folgende 
Empfehlung abgeben:

"Nimm C++! Diese Sprache ist so schön einfach und intuitiv."

???

Ich finde C nett (und C++ eher grausig). Aber intuitiv?? Eher mit Fallen 
bestückt wo man nur hinschaut. Da ist eher PASCAL intuitiv.

Jetzt verstanden?

:-)

Sei nicht gleich so erzürnt. Will dir doch keiner was böses. Bleib cool.

;)

von Janeistklar (Gast)


Lesenswert?

wurscht schrieb:
> Ich versuche dir die ganze Zeit hier begreiflich zu machen, dass für
> viele Anfänger "C" WEDER einfach NOCH intuitiv ist. Anders ausgedrück,
> wäre es so, würden Fragen wie hier des TE erst gar nicht gestellt.

Diese Attribute sind sicher nur dem Anfänger wichtig, wenn es um den 
Einstieg und das das Rumprobieren geht.
Später spielen andere Faktoren eine Rolle, wie Portierbarkeit, 
Wartbarkeit. Und da hat ein gut! programmierter C oder C++ Code die Nase 
vorn. Bascom leider nicht, weil es das nur für AVR gibt.

Tom

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Janeistklar schrieb:
> Später spielen andere Faktoren eine Rolle, wie Portierbarkeit,
> Wartbarkeit. Und da hat ein gut! programmierter C oder C++ Code die Nase
> vorn.

Und auch vor ASM!

Siehst du, geht doch.

von Lutz H. (luhe)


Lesenswert?

Fang langsam an.
 Programmieren ist für mich mehr das Analisieren des Problems,
malen von Programmablaufplänen, schalten der Ein- und Ausgänge ..

Das andere ist des Kodieren, da muss das Programm in die Worte und 
Syntax der Sprache übersetzt werden. Diese Sprache lernt man Stück für 
Stück.
Mit jeder Sprache kann man ähnliche Sachverhalte ausdrücken.

von mullwark (Gast)


Lesenswert?

Jörg P. R. schrieb:
> Ich weiß das hier schon gefühlt mindestens 2500 mal die Thematik
> durchgekaut wurde, was mich aber nun konkret nicht weiterbringt.
> Also nun zum 2501 male die Frage

Du siehst hier, daß auch die 2501ste Frage nicht anders beantwortet 
wird, als 2500 mal vorher. ;-)
Daraus läßt sich aber etwas ableiten. Auch nach 2500 Diskussionen gibt 
es kein "Sprache A" ist besser als "Sprache B".

Man kann sich auch innerhalb seines Bekanntenkreises umschauen. Ist da 
jemand der eine Sprache beherrscht, lern diese. Bei einem Bier über 
Problemstellungen und Code sprechen können, ist fürs Lernen und Bugs 
finden Gold wert.

Ich habe mit ASM angefangen und nutze selber C für meine AVR-Projekte, 
sind nicht viele, ist Hobby, kein Beruf.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Wir sollten einfach Jörg P. R. noch einmal zu Wort kommen lassen, damit
er uns erzählt, welche konkrete Frage in den 2500 bisherigen Threads
nicht beantwortet worden ist.

Ohne diese Information ist es völlig sinnlos, hier weiter zu
diskutieren.

von Blende22 (Gast)


Lesenswert?

[quote]  Da ist eher PASCAL intuitiv. [/quote] Das z.B. ich sehr gerne 
verwende.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Blende22 schrieb:
> [quote]  Da ist eher PASCAL intuitiv. [/quote] Das z.B. ich sehr
> gerne
> verwende.

Ja, das ist nett. Aber für uC leider nicht vertreten.

von mike (Gast)


Lesenswert?

also wenn irgendertwas lang und breit und zur vollsten Genüge diskutiert 
worden ist, dann dieses Thema des Threads. Man möchte fast sagen es gibt 
keine Frage dazu die nicht hitzig diskutiert wurde!

von wurscht (Gast)


Lesenswert?

Wunder gibt es immer wieder ... (Gast) schrieb:

Blende22 schrieb:
>> [quote]  Da ist eher PASCAL intuitiv. [/quote] Das z.B. ich sehr
>> gerne
>> verwende.

> Ja, das ist nett. Aber für uC leider nicht vertreten.

Für manche µC schon

http://www.ieap.uni-kiel.de/surface/ag-berndt/lehre/fpmc/

von Blende22 (Gast)


Lesenswert?


von flädu (Gast)


Lesenswert?

>Später spielen andere Faktoren eine Rolle, wie Portierbarkeit, Wartbarkeit.

Hatten wir alles schon.

Wohin denn portieren?
Wenn man den Controller wechselt hat das schon seinen Grund. Dann setzt 
man das Projekt neu auf und schreibt eh alles neu. Das Alte ist dann ein 
kleines Subset des Neuen.

warten ?
Ein neuer Mitarbeiter soll alte Software fuer neue Anforderungen 
anpassen? Es soll's neu schreiben und sich bei der alten Software eine 
Idee holen.
Derselbe Mitarbeiter soll alte Software 10 Jahre spaeter fuer neue 
Anforderungen anpassen? Es soll's neu schreiben und sich bei der alten 
Software eine Idee holen.

von Schade (Gast)


Lesenswert?

flädu schrieb:
> Dann setzt
> man das Projekt neu auf und schreibt eh alles neu.

flädu schrieb:
> Ein neuer Mitarbeiter soll alte Software fuer neue Anforderungen
> anpassen? Es soll's neu schreiben und sich bei der alten Software eine
> Idee holen.

flädu schrieb:
> Es soll's neu schreiben und sich bei der alten
> Software eine Idee holen.

Klar, kostet ja nix. :-(((

Und jetzt geh wieder in den Sandkasten zu deinen Förmchen. ;-)

von Andy P. (Gast)


Lesenswert?

Also wenn der TO schon mit NE555 und Lötkolben aufgewachsen ist, dann 
sind ihm Logikgatter wie NAND und NOR, Zählstufen, Schieberegister etc 
vertraut.
Aus der Sicht würde ich mindestens zum Verständnis einen kleinen Ausflug 
empfehlen, in ASM eine LED blinken zu lassen oder auf einen Taster zu 
reagieren. Die typischen 10-Menmonics-Standardbeispiele halt. So lernt 
er am besten die Architektur des AVR kennen. Selbst wenn er die 
Beispiele aus dem Tutorial hier nur abtippt und damit rumspielt.
Danach in C alles zu programmieren ist auf jedenfall bequemer als ASM, 
warum nicht diese Bequemlichkeit ausnutzen.
Aber mal ehrlich: gut ein Viertel der C-Fragen hier im forum klingen aus 
Sicht der Assemblerkenner, als ob da jemand den Wald vor lauter Bäumen 
nicht sieht. Klar diesen Leuten fehlt die Hardwarenähe, und die braucht 
es hierbei. Und gerade wer diese Hardwaresicht aus dem Assemblerbereich 
im Hinterkopf hat, für den schreibt sich C ähnlich flüssig wie BasCom.

Mein Rat an den TO: lies das Datenblatt zusammen mit einem ASM-Tut. Wenn 
wengistes eine LED auf Tastendruck reagiert, schnapp dir C und für die 
meißten Probleme wird sich (viel zu oft!) schon beim ersten 
drübernachdenken der AVR aufdrängeln.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

Andy P. schrieb:
> Die typischen 10-Menmonics-Standardbeispiele halt. So lernt
> er am besten die Architektur des AVR kennen.

Andy P. schrieb:
> gut ein Viertel der C-Fragen hier im forum klingen aus
> Sicht der Assemblerkenner, als ob da jemand den Wald vor lauter Bäumen
> nicht sieht. Klar diesen Leuten fehlt die Hardwarenähe, und die braucht
> es hierbei.

Und wieder die Selbstbeweihräucherung der supercoolenharten Jungs.

Bei der hier so hoch gehobenen Hardware Kenntnis geht es doch um die 
Peripherie!!! Einen Timer, A/D, Port, usw. muss ich in C oder sonst 
etwas genauso auf Registerebene konfigurieren wie in ASM.

Aber anstatt darüber zu grübeln, wie ich bei genau diesem µC den 16 Bit 
MUL möglichst effizient ausführe, mache ich mir mehr Gedanken über das 
Programmdesign.

ASM ist das Paddelboot, da kann man die Strömung schön in den Armen 
spüren. Eine Hochsprache ist das Motorboot. Ganz einfach und schlicht 
(C) bis zur Yacht mit Bar und 3 Schlafzimmern.

von HAL2000 (Gast)


Lesenswert?

Es gibt aber noch eine Welt nach C! Eine der schlimmsten 
Programmiersprachseuchen die sich etabliert haben, widerwärtig in vieler 
Augen und auch Solchen, die sich jeden Tag mit diesem Wahnsinn 
herumärgern müssen.

Das Nächste Mal kommt garantiert, bei dem ich mich dann wie viele Andere 
durch Anderer Leute Wurschtelcode wühlen muss. Solcher Leute die glauben 
sie sind die Götter der Programmierer und es muss teuflisch kompliziert 
formuliert sein, damit der halbwegs programmierfähige Chef glaubt er ist 
ja sooooo ein Crack.

Portabilität ist auf Mikrocontrollern ja wohl ein schlechter Witz!  Ein 
paar Message-Ausgaben oder simple berechnungen lassen sich vielleicht 
von einer Controllerfamilie zu einer hardwareseitig gänzlich Anderen 
portieren, aber doch nicht ein komplettes Projekt! Träumer!

von Jörg P. R. (jrgp_r)


Lesenswert?

Rush schrieb:
> Ich glaube es nicht,......
> Wie soll das was werden, wenn man nicht einmal die Datasheet versteht.

So weit geht mein Englisch schon noch. Aber ein Buch in Englisch ist 
schon schwieriger. Man muß dazu sagen dass ich auch schon weit jenseits 
der 40 bin und zu meiner Zeit Englisch erst ab der 5ten Klasse gab und 
ich fast nie Englisch spreche.

Sollte das mit den µc nicht klappen, besser ich mein Englisch auf.:-)))

@Tommy Tomatronic
Du hast den Nagel auf den Kopf getroffen. Ich glaube ich Ticke da wie 
du. Erst mal, wie einige schon geschrieben haben, eine LED blinken 
lassen und dann weiter steigern. Das alles soll ja ein Hobby bleiben und 
nicht in Stress ausarten. Beruflich kann ich da mit nichts anfangen.

@ALLE

Danke für die Betrachtungsweisen von allen Seiten.

Ich werde es erst mal mit Bascom anfangen und wenn ich da zu Potte mit 
komme, mache ich mit einer anderen weiter. Die Kosten sind nicht 
unbedingt ausschlaggebend.

Um hier keine Prügelei anzuzetteln, darf hier ein MOD ein Schloss 
aufhängen.

von spess53 (Gast)


Lesenswert?

Hi

>ASM ist das Paddelboot, da kann man die Strömung schön in den Armen
>spüren. Eine Hochsprache ist das Motorboot. Ganz einfach und schlicht
>(C) bis zur Yacht mit Bar und 3 Schlafzimmern.

Seit wann lässt die Verwendung einer Programmiersprache die Intelligenz 
explotieren. Die Yacht ist es nur für die paar wirklichen Experten. Der 
größere mittelmäßige Rest dümpelt weiter unten herum.

>Es gibt aber noch eine Welt nach C!

Die ist noch schlimmer.

MfG Spess

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

spess53 schrieb:
> Seit wann lässt die Verwendung einer Programmiersprache die Intelligenz
> explotieren. Die Yacht ist es nur für die paar wirklichen Experten.

Bei dir hat es nicht BUMM gemacht. C ist das kleine Motorboot, die 
Yacht ist viel komfortabler.

von Andy P. (Gast)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Bei der hier so hoch gehobenen Hardware Kenntnis geht es doch um die
> Peripherie!!! Einen Timer, A/D, Port, usw. muss ich in C oder sonst
> etwas genauso auf Registerebene konfigurieren wie in ASM.
>
> Aber anstatt darüber zu grübeln, wie ich bei genau diesem µC den 16 Bit
> MUL möglichst effizient ausführe, mache ich mir mehr Gedanken über das
> Programmdesign.

Träum weiter, die Realität sieht anders aus! Drei aktuelle Beispiele 
gleich hier aus dem Forum:
Beitrag "STM32F4 Gleitkommazahl berechnet nicht"
Beitrag "Programm zu groß für 1k Flash"
Beitrag "Idiotischer Anfängerfehler"

Alles Fragen in Ermangelung von Grundlagenwissen (oder dessen temporären 
Aussetzen) über Microcomputer. Nicht, daß genau das auch 
Assemblerbenutzern passiert, Aber ein Assemblerprogrammierer sieht, 
wieso ein +0,1 auf eine ganzzahlig gespeicherte Zahl nicht geht. Oder 
warum Verzögerungsschleifen "verschwinden"...
In diesem Thread geht es nicht um C oder Assembler oder Java, sondern 
hier gehts es primär um die effektive Vermittlung von Grundlagenwissen 
zur Programmierung von Microrechnern. Und das macht man idealerweise 
aufbauend auf vorhandenem Wissen.
Assembler bietet gerade denen, "die von der Hardware kommen" den 
leichtesten Einstieg, denn sie "sehen", was in den bereits bekannten 
Elektronikelementen des yC passiert. Da braucht nichts über 
(un-)mögliche abstrakte Logik- und Worthülsenkonstrukte herbeizitiert 
werden, wo jemand im Selbststudium mit Sicherheit was falsch lernen 
wird. Einem Neuling das Konzept von Interruptvektoren ohne eine 
anschauliche CPU in C beizubringen, das würde sich nichtmal Knuth 
trauen.
Wer von den größeren abstrakteren Hochsprachen an die Sache kommt (also 
z.b. "Delphi-Buttonschubser" und "html-Webprogrammierer" (lol)), sollte 
ruhig erstmal C lernen - und zwar die Sprache am PC, bevor man in den 
Embedded Bereich (insbesondere im Selbststudium) geht. Dann kann er auch 
mit dem Erlernten sich über die Hardware(-register) hermachen. Beides 
gleichzeitig ist größter Schwachsinn.

Weder C, noch Assembler, noch Java (Ardunio) sind die richtige 
Sprache.
Beispiel: kaum jemand hier im Forum wird ernsthaft darüber nachdenken, 
sowas wie einen wissenschaftlichen Taschenrechner in Assembler zu 
programmieren. Oder ein Soft-USB in C. Und das aus gutem Grund. Ich 
selbst nutze mal das eine, mal das andere.
Du scheinst eher zu dieser "one-size-fits-all"-Riege an Programmierern 
zu gehören: Wer nur den Hammer als Werkzeug kennt, für den ist alles ein 
Nagel. Wenn dem nicht so ist, steht es dir frei, diesen Eindruck zu 
korrigieren.

von Tommy T. (thomas_k86)


Angehängte Dateien:

Lesenswert?

Jörg P. R. schrieb:
> Ich glaube ich Ticke da wie
> du.

Eines meiner ersten Programmen.Weis nicht mehr wo her,aber es funzt! :)
Wenn du wünscht hab ich da noch viel mehr von meiner Anfangszeit. :)

von Martin V. (oldmax)


Lesenswert?

Hi
Ach, ich liebe Diskussionen über Programmiersprachen... ist richtig 
toll. Mir fehlt da aber immer noch der Satz "Diebstahl am .....". Das 
mit dem Ruder- und Motorboot ist neu. Wirkliche Programmierer, und das 
sollte sich die Glaubensgemeinschaft rund um irgendeine 
Programmiersprache hinter die Ohren schreiben, diskutieren nicht über 
irgend einen Vor- oder Nachteil der Sprachen, sondern wenden an, was 
gebraucht wird. Auch mit einem Motorboot kann man rudern, wenn man nicht 
in der Lage ist, mit dem Motor umzugehen und es gibt auch Ruderboote, 
die einem Motorboot durchaus Paroli bieten können. Daher ist diese 
Diskussion immer noch ein Spiegelbild der Autoren und ihrer Qualität. Es 
geht, und das war von Anfang an klar, nicht darum, einem neuen Profi die 
Einstellungsbedingungen beizubringen, sondern um ein Hobby, das um ein 
Thema erweitert wird. Oder in eine neue Dimension vorstößt.
Hilfreich allerdings, und das ist allen Sprachen gemein, ist ein 
strukturierter Aufbau. Hier kann man unabhängig der Sprache durchaus 
hilfreiche Beiträge leisten. Und kommt mir nicht damit, das 
Assemblerprogramme eh nur Spaghetticode ist und C zwingend eine Struktur 
verlangt.
@Jörg
Wenn du schon ein paar Erfahrungen mit BASCOM hast, dann setz das ruhig 
ein. Diese Sprache sollte ein paar schnelle Erfolge liefern. Interessant 
wird es dann, wenn du dich auch an die Basis wagst und ein wenig mit 
Assembler spielst. Das ist fast so, als würdest du wie früher deine 
Gatter verdrahten. Aber eben ohne Lötkolben und Strippen ziehen.
Viel Spaß noch.
und ach ja, bitte kein Schloß, da gibt's sicherlich noch ein paar 
äußerst gescheite Antworten auf die Beiträge....
Gruß oldmax

von chris (Gast)


Lesenswert?

Guten morgen

ganz ehrlich ist es nicht egal was für ein sprache du lernst? Viel 
wichtiger ist doch das du dein projektziel erreichst und schlussendlich 
wird keiner danach fragen wie und womit du es realisiert hast. Probiern 
heißt es, womit man am besten klar kommt.

von Jim (Gast)


Lesenswert?

ich nutzhe ebenfalls PAscal, unterstützt alle gängigen µc, ist intuitiv 
und man hat ruck zuck ein fertiges Programm das das tut, was es 
soll...kein frickeln.
Meist sind bereits viele units enthalten mit Treibern für viele Displays 
etc.
Bei Mikro e sind auch tolls zum errechnen vom Timer etc mit dabei usw.
Habe auch auf absehbare Zeit keine Ambitionen zuw echseln.
Geschwindigkeitsunterscheide zu C gibt es ebenfalls nicht

von cybmorg (Gast)


Lesenswert?

Nach eingehender Analyse komme ich zu dem Schluss, dass die groessten 
Kiffer die Pascal-Programmierer sind.

von Blende22 (Gast)


Lesenswert?

Ich lies da so gern mit! Habe gern lustige Unterhaltung. Das Leben ist 
sonst ohnehin ernst genug. ;-)

von Karl H. (kbuchegg)


Lesenswert?

:-)
Wie ich gerne sage: Die beste Programmiersprache ist die, die man 
beherrscht.

von Blende22 (Gast)


Lesenswert?

Sic est! Was einen ja nicht daran hindert, dazu zu lernen. ;-)

von Helmut L. (helmi1)


Lesenswert?

Jim schrieb:
> ist intuitiv
> und man hat ruck zuck ein fertiges Programm das das tut,

Das habe ich bei C auch. Das ist auch ruck zuck fertig und laeuft wie es 
soll. Entweder man beherscht sein Werkzeug oder nicht. Wenn man nicht 
Auto fahren kann ist nicht das Auto schuld daran.

von Cyblord -. (cyblord)


Lesenswert?

Helmut Lenzen schrieb:
> Jim schrieb:
>> ist intuitiv
>> und man hat ruck zuck ein fertiges Programm das das tut,
>
> Das habe ich bei C auch. Das ist auch ruck zuck fertig und laeuft wie es
> soll. Entweder man beherscht sein Werkzeug oder nicht. Wenn man nicht
> Auto fahren kann ist nicht das Auto schuld daran.

Ein nicht zu zerstörendes Vorurteil der Arduino/Bascom/Pascal Fraktion 
ist immer wieder, dass man ja viel schneller am Ziel wäre. Was einfach 
nicht stimmt. Man kann vielleicht behaupten, es ist leichter zu 
erlernen, aber der Fokus sollte nicht immer nur auf dem blutigen 
Anfänger liegen bei der Diskussion. Wer das Werkzeug beherrscht, braucht 
mit C nicht länger bis irgendwas läuft. Das ist also einfach kein 
Argument. Aber es wird immer und immer wiederholt.

von Blende22 (Gast)


Lesenswert?

Was meiner Ansicht nach halt sehr wichtig ist, sind 
Grundlagen-Kenntnisse in Elektronik generell. Wenn es bereits beim 
Berechnen eines Vorwiderstandes für eine Leuchtdiode hapert, schaut es 
für das Programmieren auch nicht rosig aus. Oder, wenn man eine 
Schrittmotorsteuerung programmieren will, ohne zu wissen, wie ein 
Schrittmotor funktioniert. Nicht gut.

von Wunder gibt es immer wieder ... (Gast)


Lesenswert?

cyblord ---- schrieb:
> Man kann vielleicht behaupten, es ist leichter zu
> erlernen, aber der Fokus sollte nicht immer nur auf dem blutigen
> Anfänger liegen bei der Diskussion.

Du weisst schon, wer welche Frage ganz oben gestellt hat?

Ein Anfänger !

von Cyblord -. (cyblord)


Lesenswert?

Wunder gibt es immer wieder ... schrieb:
> Du weisst schon, wer welche Frage ganz oben gestellt hat?
>
> Ein Anfänger !

Weiß ich. Aber die Diskussion triftete natürlich wieder in die 
allgemeine Schiene. Außerdem ist es gerade für einen Anfänger wichtig zu 
wissen, dass eben ein Programm in C nicht per se komplizierter ist, oder 
die Erstellung länger dauert, als z.B. in Bascom. Gerade weil das hier 
öfters behauptet wird. Natürlich nur von der Fraktion die nie über ihren 
Bascom/Pascal/Arduino Tellerrand rausgeschaut hat, und dort draußen wohl 
eine grausame C-Welt vermutet die sie sowieso nie verstanden haben. Dann 
wird da kräftig vor gewarnt.

gruß cyblord

von Helmut L. (helmi1)


Lesenswert?

@cyblord

Full Ack.

von Martin V. (oldmax)


Lesenswert?

Hi

na ja..... da will ich noch mal ein klein wenig Feuer ins Öl gießen
>die sie sowieso nie verstanden haben. Dann
>wird da kräftig vor gewarnt.


Helmut Lenzen schrieb:
> @cyblord
>
> Full Ack.

Hab zwar keinen Warn-Beitrag gesehe, aber bleibt ruhig in eurer 
(kleinen) Welt. Es ist schon faszinierend, wie vehement da C verteidigt 
wird, wo doch niemand behauptet "C bääh". Eher im Gegenteil, doch es 
gibt halt auch ein paar andere Sprachen. Und wer damit zurechtkommt, 
dann ist es doch seine Sache, sie anzuwenden. Ich für meinen Teil 
spreche kein C, dennoch ist es ein Werkzeug und wenn ich es mal 
benötige, werd ich mir überlegen ob ich es nutze oder eine Alternative 
wähle. Wenn jemand Assembler anpreist, ist das solange ok, bis er sagt 
"ohne Assembler geht gar nix". Das ist ebenso vermessen. Ich glaube, den 
Profis ist doch klar, was für ihre Arbeit das Beste ist und jemand, der 
sich ein Hobby aussucht, geht vielleicht einen völlig anderen Weg, der 
ihn aber auch zum Ziel bringt. Was ist bei einer blinkenden LED der 
Unterschied, wenn die Programmierung in C, BASCOM oder Assembler 
geschrieben ist ? Die LED blinkt und gut. Ob nun dafür 9/100 oder 2/10 
des Programmspeichers tätig sind ist doch sowas von wurscht.
Gruß oldmax

von Cyblord -. (cyblord)


Lesenswert?

Martin Vogel schrieb:
> Hi
>
> na ja..... da will ich noch mal ein klein wenig Feuer ins Öl gießen
>>die sie sowieso nie verstanden haben. Dann
>>wird da kräftig vor gewarnt.
>
>
> Helmut Lenzen schrieb:
>> @cyblord
>>
>> Full Ack.
>
> Hab zwar keinen Warn-Beitrag gesehe, aber bleibt ruhig in eurer
> (kleinen) Welt.
Wir kennen auch die anderen Sprachen. Niemand hat hier grade gesagt, es 
geht nur C und sonst nichts. Ich wehre mich grade gegen genau das 
Gegenteil von Seiten der C-Hasser. Denn hier wird (und in anderen 
Threads noch mehr) C als besonders herausragend komplex, schwer und 
langwierig dargestellt. Nur dagegen möchte ich etwas sagen. Wo genau 
liest du denn jetzt die Aussage von uns heraus, dass nichts ausser C gut 
wäre?

> Es ist schon faszinierend, wie vehement da C verteidigt
> wird
Das ist nötig, wenn falsche Dinge behauptet werden.

von Helmut L. (helmi1)


Lesenswert?

Nur um das mal klar zu stellen, ich beherrsche einige Assemblerdialekte 
vom guten alten 8080,80x86 angefangen ueber 6502,68000,68hc11 bis zu 
AVR,MSP430,ARM. Nur wenn du nicht immer wieder alles neu schreiben 
willst dann mach man das in C. Ich meine jetzt nich Lowlevel IO/Routinen 
sondern die Schichten die darueber liegen. Also Menusteuerungen, 
Protokollstacks, Displayansteuerungen, digitale Filterroutinen etc. Und 
das laesst sich normalerweise sehr gute von einer Entwicklung zu einer 
anderen Transportieren. Bei einer vernueftigen Softwareentwicklung 
sollte man immer Lowlevel (IO) , unabhaengige Routinen und die 
eigentliche Applikation trennen. Und nicht das du denkst ich koennte 
kein Basic oder Pascal, die Sprachen habe ich vor 30 Jahren mal gelernt 
und musste einsehen das man da nicht weiter mit kommt. Da ist C halt 
eine der wenigen Sprachen fuer die es fuer fast jede CPU Architektur 
einen Compiler gibt und die sind zumindest in ca. 90% der Faelle gleich.

von Martin V. (oldmax)


Lesenswert?

Hi
Nun, da ich wahrscheinlich nun die Zielscheibe bin, ok. Wenn ihr lesen , 
oder besser gesagt, das auch verstehen könntet, dann würdet ihr auch 
mitbekommen, das ich niemals über die Sprache hergezogen bin. Weder über 
BASCOM, PASCAL oder C. Mit C hab ich mich bisher nicht mit beschäftigt, 
aber das brauch ich auch nicht.. oder nicht mehr. Aber wer weiß.. 
vielleicht lern ich das doch noch mal. Werde ja bald genug Zeit haben. 
Für mich ist es ja eh nur Syntax pauken, das andere, viel Wichtigere, 
Strukturen festlegen und Programmaufbau, denk ich, bring ich schon 
zustande.
Aber ich bin beeindruckt. Soviel Assembler  Whow, hätt ich nicht 
gedacht. Und vor 30 Jahren Basic, hmmmm welchen Dialekt denn. Zu dieser 
Zeit gab es ja soviel. Selbst Pascal hatte da alle möglichen Auswüchse 
und der alte Wirth wird sich manches mal die Haare gerauft haben. Aber 
sorry, ich sprech hier vermutlich mit der Generation, die in Basic mal 
'nen Bubblesort hinbekommen hat und erst auf der Uni mit C verheiratet 
wurde. Jungs, nehmt es mir nicht übel, aber ihr könnt hier behaupten, 
beste Freunde des Kaisers von China zu sein. Ich werd dem nicht 
widersprechen, Kann ja möglich sein. Doch es ist doch nach wie vor 
völliger Blödsinn, sich so ans Anpreisen einer Programmiersprache 
herabzulassen. Glaubt ihr denn, nur ihr seid erwachsen genug, um die 
Entscheidung für die Welt zu treffen? Wenn der TO BASCOM nehmen will, 
ist das seine Entscheidung und das ist gut. Hätt er sich für C 
entschieden, wär hier schon längst die Luft raus. Also lasst eure 
Kommentare zu unsere aller Amüsement weiter fließen. Vielleicht kann ich 
da auch noch ein bisschen beitragen.
Aber nich vergessen, wir reden hier von µC und Hobby.
Gruß oldmax

von HAL2000 (Gast)


Lesenswert?

Wir haben alle unsere Erfahrungen gesammelt. Die Profis und auch die 
Hobbyisten. Manchmal möchte man aber einfach Anderen auch unsinnige 
Zeitverschwendung ersparen indem man aus der eigenen Erfahrung 
resultierend z.B. die Verwendung von BASCOM vermeidet. Das Geld kann 
man sich einfach sparen und eine entsprechende sinnvollere Alternative 
wählen. Welche das ist, ist wohl unerheblich denn jede *richtige 
Programmiersprache* ist für spätere anspruchsvollere Projekte, die ja 
unweigerlich kommen werden, die sinnvollere Wahl. Auch wenns denn 
unbedingt kein C sein darf gibts auch hier ausreichend Auswahl.

Man kann als Fragesteller dann nun diese Erfahrung Anderer ernst nehmen 
oder auch nicht, da bleibt die freie Wahl bestehen und es wird nichts 
oktroyiert.

von Christopher C. (Gast)


Lesenswert?

Martin Vogel schrieb:
> Für mich ist es ja eh nur Syntax pauken

Genau das ist das Problem, dass das viele glauben. C ist eine Sprache 
die man wirklich verstehen muss. Nur die Syntax auswendig zu wissen 
führt da zu nichts.

von Helmut L. (helmi1)


Lesenswert?

Martin Vogel schrieb:
> Nun, da ich wahrscheinlich nun die Zielscheibe bin, ok.

Na Martin, ich wuerde dich nicht als Zielscheibe hinstellen :=)

Martin Vogel schrieb:
> Und vor 30 Jahren Basic, hmmmm welchen Dialekt denn.

Das waren die Commodore Zeiten. So ein Teil steht bei mir noch auf dem 
Speicher mit Display und Recoder drin mit sagenhaften 8KByte Memory.
Naja, voriges Jahr mal eben eingeschaltet ob er noch lebt, da sagt er 
doch glatt er hat nur noch 4 KByte. Muessen die Maeuse dran gewesen 
sein.
Vielleicht reparier ich irgendwann noch mal. 2114 RAMs habe ich noch.

Martin Vogel schrieb:
> Selbst Pascal hatte da alle möglichen Auswüchse
> und der alte Wirth wird sich manches mal die Haare gerauft haben.

Yepp, da gab es UCSD Pascal,Turbo Pascal und Pascal MT+. Aber alles 
nicht so geeignet groessere Softwaresystem zu erstellen (100K++). Pascal 
MT+ war da noch die Ausnahme wurde aber dann in den spaeten 80er 
eingestellt. Microsoft Pascal war auch nicht der Hit und von Billy auch 
kurz danach eingestellt. Die alternative war dann nur noch C. Da wurden 
dann die einige 100K Pascalzeilen mal innerhalb von einigen Monaten nach 
C Konvertiert. Dazu schreibt man sich dann einen Pascal nach C Konverter 
(in C Natuerlich). Nach ablauf dieser Phase kann man dann C.

Martin Vogel schrieb:
> Aber
> sorry, ich sprech hier vermutlich mit der Generation, die in Basic mal
> 'nen Bubblesort hinbekommen hat und erst auf der Uni mit C verheiratet
> wurde. Jungs, nehmt es mir nicht übel, aber ihr könnt hier behaupten,
> beste Freunde des Kaisers von China zu sein.

Noe, im Crashkurs bei der Umstellung. Friss oder Stirb Methode.

von Martin V. (oldmax)


Lesenswert?

Hi
>Na Martin, ich wuerde dich nicht als Zielscheibe hinstellen :=)
Da hab ich ja noch mal Glück gehabt, den daneben zu schießen wär schon 
eine Kunst..
UCSD, war mein erster offizieller Kurs auf der VHS. Wollt mal was 
anderes machen, wie BASIC. Hab mir damals noch für knapp 10 DM eine 
51/2'' Floppischeibe gekauft mit so ein paar k, so irgendwas bei 700 
drauf. Man bekommt im Zeitalter der GB USB-Sticks Lachfalten. Nach dem 
ZX 81 hab ich mit dem Sharp 700 gekämpft und mein erster PC war mit sage 
und schreibe 40 MB Festplatte ausgestattet. Das war so die Zeit zwischen 
MT+ Pascal und Turbo Pascal, wobei Turbo Pascal da schon die 
Luxuslimousine war. MT+ war echt ne Grotte. Lief bei mir noch unter 
CP/M. Ja, das waren noch Zeiten und da konnte man doch tatsächlich einen 
Drucker im Interrupt betreiben. Windows war nämlich zu der Zeit noch 
fest der Meinung, entweder Drucken oder PC bedienen, beides ist mir zu 
viel.  Die Maschine aber auf der anderen Seite blieb aber dabei: Ich 
will etwas vom PC, also hat der sich gefälligst zu melden. Damals hab 
ich richtig tief gegriffen. Hat sich aber letztlich gelohnt.
Heut bin ich schon wieder bei Basic, weil mir Delphi einfach für meine 
Zwecke zu teuer ist und VB doch ganz passable Datenbankanwendungen 
ermöglicht. Aber (fast) alles nur zum Hobby. Genug aus alter Zeit 
geplaudert.
Noch ein kurzer Kommentar an Christoper
Klar muss ich den Syntax pauken, denn das ist das einzige, was mir nicht 
in die Birne will. Ich liebe klare verständliche Anweisungen und nicht 
solch gestottere == oder Zeichen, die ich auf meiner Tastatur erst mit 
gebrochenen Fingern zustande bringe. Jaaa, ich weiß, so isses nu auch 
wieder nich..
Gruß oldmax

von Blende22 (Gast)


Lesenswert?

Assembler auf'm C64 war auch recht spannend und C gab es auch für das 
Ding !
Und, weil wir gerade in der Computer-Steinzeit sind: Mein erster XT 
hatte eine 20MB-HD. Gigantisch! ;-)

von Helmut L. (helmi1)


Lesenswert?

Martin Vogel schrieb:
> UCSD, war mein erster offizieller Kurs auf der VHS.

UCSD kenn ich auch noch von der CPM Aera. Habe ich aber schnell sein 
gelassen da ich von einem Turbopascal bekam.

Martin Vogel schrieb:
> Man bekommt im Zeitalter der GB USB-Sticks Lachfalten

Yepp, deshalb sagte ich oben mit 8KByte RAM.

Martin Vogel schrieb:
> MT+ war echt ne Grotte. Lief bei mir noch unter
> CP/M.

Ich hatte beide fuer CPM und MSDOS. MT hat auch unter MSDOS sehr 
schlechten Code gemacht. Vorallen den 8087 CoProz wurde da nur sehr 
maessig eingebunden. Also erhielt ich den Auftrag alle Math Routinen in 
Assembler neu zu schreiben. Da kamen dann Leistungssteigerungen vom 
Faktor 10 bei raus. Alle haben sich dabei gewundert wie schnell Drehen 
und Spiegeln von Objekten wurde. Mikrobensoft C war da schon besser beim 
8087 aber auch noch nicht Optimal.

Martin Vogel schrieb:
> mein erster PC war mit sage
> und schreibe 40 MB Festplatte ausgestattet.

Mein erster PC (1986) hatte nur 2 Floopys. Da hat das Compilieren Spass 
gemacht. Nach einiger Zeit dann "Read Error on Disk A". Aetsch.
Erst einige Monate Spaeter dann eine HD eingebaut mit 20MB (rund 900 DM 
Damals). Das glaubt die Jugend heute sowieso uns nicht mehr. Kennst du 
auch noch die 8" Floppys? Wenn du sowas heute einem zeigst meint der das 
waere ein Werbegag.

Martin Vogel schrieb:
>>Na Martin, ich wuerde dich nicht als Zielscheibe hinstellen :=)
> Da hab ich ja noch mal Glück gehabt, den daneben zu schießen wär schon
> eine Kunst..

Uppss...

von Helmut L. (helmi1)


Lesenswert?

Blende22 schrieb:
> Assembler auf'm C64 war auch recht spannend und C gab es auch für das
> Ding !

Ich hatte nur Pascal 64 fuer das Ding. Schade um den 50er was das Teil 
gekostet hat.

> Und, weil wir gerade in der Computer-Steinzeit sind: Mein erster XT
> hatte eine 20MB-HD. Gigantisch! ;-)

Du weist doch:  "Mehr als 640 KByte braucht kein Mensch" O-Ton Billy.
Der Markt fuer Computer belaueft sich auf 2..3 Stueck fuer die USA einen 
fuer die Westkueste einen fuer die Ostkueste. O-Ton IBM.

Martin Vogel schrieb:
> Ich liebe klare verständliche Anweisungen und nicht
> solch gestottere == oder Zeichen, die ich auf meiner Tastatur erst mit
> gebrochenen Fingern zustande bringe.

Dafuer habe ich ein US-Tastatur.
   ^^
   erkennt man hier dran :=)

von mullwark (Gast)


Lesenswert?

Martin Vogel schrieb:
> Ich liebe klare verständliche Anweisungen und nicht
> solch gestottere == oder Zeichen

Ich kann mich noch ganz vage daran erinnern, wie ich in der Grundschule 
"Fu ruft Uta" hervorstotterte. Ganz laaaangsam wurde es dann besser.
Ziemlich ähnlich war dann mein C lernen.
Heute liebe ich die klaren verständlichen C-Anweisungen. Gerade diese 
Konstruktionen sind ja eine Stärke der Sprache.
Es ist eine Frage des Verinnerlichens.

Betrachte ich Deutsch oder Englisch, kann ich mit beiden Sprachen das 
gleiche aussagen. Was mich am Englischen fasziniert, ist, daß die Briten 
den gleichen Inhalt mit weniger Buchstaben ausdrücken können. Trotzdem, 
weil ich deutsch besser kann, benutze ich es weiterhin, wo ich kann.

von Helmut L. (helmi1)


Lesenswert?

mullwark schrieb:
> Heute liebe ich die klaren verständlichen C-Anweisungen. Gerade diese
> Konstruktionen sind ja eine Stärke der Sprache.

Vor allem werden wir älter und da werden die Gelenke in den Finger 
steifer, dann ist man froh über kurze Anweisungen :=)

von Cyblord -. (cyblord)


Lesenswert?

Helmut Lenzen schrieb:

> Du weist doch:  "Mehr als 640 KByte braucht kein Mensch" O-Ton Billy.
> Der Markt fuer Computer belaueft sich auf 2..3 Stueck fuer die USA einen
> fuer die Westkueste einen fuer die Ostkueste. O-Ton IBM.

Nun für die jeweilige Zeit aus der das Zitat stammt, stimmte das auch. 
Das waren beides keine Projektionen oder Vorhersagen für die Zukunft. 
Sich mit dem heutigen Wissen darüber lustig zu machen ist nicht gerade 
fair ;-)

gruß cyblord

von Helmut L. (helmi1)


Lesenswert?

cyblord ---- schrieb:
> Nun für die jeweilige Zeit aus der das Zitat stammt, stimmte das auch.

Das war damals schon knapp. Ich durfte da ständig Speichertreiber 
schreiben um mehr Speicher zu erhalten. Für CAD Anwendungen war das 
schon arg eng im Speicher. Dazu die ganze Overlaytechnik für den Code.

von Icke ®. (49636b65)


Lesenswert?

Programmiersprachen militärisch betrachtet...
- in Bascom programmieren nur Zivis
- in C schreiben die rückwärtigen Dienste
- in Assembler die Infanterie

Die SEALs unter den Programmierern pfeifen auf Editoren und Compiler, 
sie leiten den Standardinput auf ein Hex-File um und hacken den 
Maschinencode hexadezimal rein. =8P

von Hinz oder Kunz (Gast)


Lesenswert?

Es gibt Leute, die Programmieren den lieben langen Tag. Die brauchen 
dann eben auch C, weil portierbar. Der Einsatzzweck ist voellig egal, 
die Anwendung auch. Programmieren ist der Zweck.

Und dann gibt es Leute, die loesen Probleme. Die machen auch das Drum 
Herum, und am Schluss ist das Problem geloest, Deckel drauf. 
Produzieren. Programmieren ist das Tool. Die Arbeiten dann mit Pascal 
oder so. Portierbarkerit ist kein Thema. Dann macht man eh alles Neu, 
und das urspruengliche Problem verschwindet unter den neuen Features. 
Dann will ich mit wenigen Blicken verstehen wie das Problem damals 
geloest wurde.

von Salewski, Stefan (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> :-)
> Wie ich gerne sage: Die beste Programmiersprache ist die, die man
> beherrscht.

Mann, mann, was hier so alles geschrieben wurde...

Aber Deine Aussage macht für mich auch nicht wirklich Sinn -- und Du 
hattest sie schon einmal getätigt.
Eine Programmiersprache kann für einen bestimmten Zweck ungeeignet sein, 
das ist wohl klar. Da nützt es dann auch nichts, dass man sie beherscht.

von Martin V. (oldmax)


Lesenswert?

Hi
Salewski, Stefan schrieb:
> Karl Heinz Buchegger schrieb:
>> :-)
>> Wie ich gerne sage: Die beste Programmiersprache ist die, die man
>> beherrscht.
>
> Mann, mann, was hier so alles geschrieben wurde...
>
> Aber Deine Aussage macht für mich auch nicht wirklich Sinn -- und Du
> hattest sie schon einmal getätigt.
> Eine Programmiersprache kann für einen bestimmten Zweck ungeeignet sein,
> das ist wohl klar. Da nützt es dann auch nichts, dass man sie beherscht.

Ich habe KHB verstanden, du auch ? Scheint nicht so zu sein, denn er hat 
recht, aus seiner Sicht betrachtet und wenn ich das selbe sage, habe ich 
auch recht, aus meiner Sicht betrachtet. Würdest du die Aussage treffen, 
gleichfalls. Denn: er hat nicht gesagt, das er nicht auch andere nutzt. 
Er hat nur von der "besten" gesprochen. Nicht von A,B oder C.
In einem dürften sich die Experten wohl ziemlich einig sein: 
Programmieren hat nichts mit einer Sprache zu tun. Die Sprache ist nur 
das Werkzeug. Und richtig, ich schlage auch nicht mit einer Kombizange 
einen Nagel in die Wand. (Manchmal schon, aber das ist ein ander 
Ding...)

Gruß oldmax

von chris_ (Gast)


Lesenswert?

Falls man mit ARM-Prozessoren arbeiten möchte, wäre vielleich noch eLua 
zu erwähnen:
http://www.eluaproject.net/overview/status
Lua kann amn auf dem PC und dem MC programmieren.

von Salewski (Gast)


Lesenswert?

Martin Vogel schrieb:
> Ich habe KHB verstanden, du auch ?

Wie gesagt, ich habe ihn nicht verstanden. Er hatte die Bemerkung schon 
einmal gemacht, da hatte ich mich auch gefragt, was sie aussagen soll. 
Aber ich muss zugeben, dass ich von diesem Thread sogut wie nichts 
gelesen habe -- vielleicht würde sich der Sinn im Zusammenhang 
erschließen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Salewski schrieb:
> Wie gesagt, ich habe ihn nicht verstanden. Er hatte die Bemerkung schon
> einmal gemacht, da hatte ich mich auch gefragt, was sie aussagen soll.

Karl Heinz Buchegger schrieb:
> Die beste Programmiersprache ist die, die man beherrscht.

Ich glaube, er möchte damit einfach nur in plakativer Weise ausdrücken,
dass es wenig Sinn hat, eine neue Programmiersprache zu lernen, wenn man
ein Problem genauso gut mit einer Sprache lösen kann, die man bereits
beherrscht.

Seine Aussage beantwortet allerdings nicht die Frage, was zu tun ist,
wenn die bereits beherrschten Sprachen für die Lösung eines Problems
nicht ausreichen. Das ist bspw. dann der Fall, wenn

- für keine der beherrschten Sprachen eine Toolchain für die verwendete
  Plattform existiert,

- man nur schnarchlahme Interpretersprachen beherrscht, das Ziel aber
  eine Echtzeitbildverarbeitungsanwendung ist, oder

- man überhaupt nicht programmieren kann.

Ich nehme an, dass dich genau das an seiner Aussage stört.

Auch dem TE ist damit nicht sehr geholfen, da er wohl – abgesehen von
ein paar Versuchen mit Python, das auf seinem ATtiny ohnehin nicht
anwendbar ist – keinerlei Programmiererfahrung hat. Er wird sich also
auf jeden Fall eine neue Sprache aneignen müssen und hat sich ja auch
schon für eine entschieden:

Jörg P. R. schrieb:
> Ich werde es erst mal mit Bascom anfangen

Damit ist die Sache eigentlich erledigt, oder?

: Bearbeitet durch Moderator
von Jörg P. R. (jrgp_r)


Lesenswert?

So, nun melde ich mich noch ein mal.

Ich habe mir das Atmel Board inkl. dass Add On von Pollin besorgt und 
zusammengepfriemelt. Dabei habe ich auch gleich drei ATTiny2313 
bestellt.
Erster Eindruck: Das Board reicht zum programmieren aus. Ein fertiges 
Testprogramm lief in Verbindung mit dem AddOn nicht. Habe mir auf 
Streifenraster selbst was gebastelt und da läuft es auch mit AddOn.

Nun werde ich mit Bascom und gleichzeitig auch mit LunaAVR anfangen zu 
experimentieren.
Ich will mir noch ein Buch für Einsteiger dazu besorgen.

@Tommy Tomatronic

Das Angebot nehme ich dann mal gerne an.
Ich werde mich demnächst mal per PN mit dir in Verbindung setzen.

Danke noch mal an ALLE!

von D. (Gast)


Lesenswert?

Hi Jörg,
was für ein Board hast du dann gekauft?

von Tommy T. (thomas_k86)


Lesenswert?

Jawohl,ist recht,Dann bis bald und viel Spass am Experimentieren.

von Heiko J. (heiko_j)


Lesenswert?

Icke ®. schrieb:

> Die SEALs unter den Programmierern pfeifen auf Editoren und Compiler,
> sie leiten den Standardinput auf ein Hex-File um und hacken den
> Maschinencode hexadezimal rein. =8P

Lach nicht ! Für die Amiga Co-Prozessoren Blitter und Copper hab ich das 
seinerzeit so machen müssen. Da gab's keinen Compiler oder Assembler 
für. Zugegeben der Befehlssatz war mit je 3-4 Befehlen auch nicht sooo 
groß und komplex.

von Leonard Lebewohl (Gast)


Lesenswert?

Icke schwafelte:
>Programmiersprachen militärisch betrachtet...
>- in Bascom programmieren nur Zivis
>- in C schreiben die rückwärtigen Dienste
>- in Assembler die Infanterie

>Die SEALs unter den Programmierern pfeifen auf Editoren und Compiler,
>sie leiten den Standardinput auf ein Hex-File um und hacken den
>Maschinencode hexadezimal rein. =8P

/dev/console >> /dev/mem/

Thats it!

von Karl Käfer (Gast)


Lesenswert?

Hallo Jörg,

Jörg P. R. schrieb:
> Ich habe mich hier im Forum nun anstecken lassen und will in's
> Programmieren von erst mal Miniprogrammen für Atmel einsteigen.
> Ich habe hier erst mal gelesen und dann aus der Bücherei mir mal das
> Buch "Phyton 3" ausgeliehen. Ich habe hier einen Raspi B und auch mal
> angefangen Phyton zu programmieren. Ich habe aber das Gefühl das dieses
> nicht die geeignete Sprache dafür ist.
> Ich stehe nun vor der Entscheidung Assembler, Bascom oder C.

Nein, Python ist sicherlich nicht die geeignete Sprache zur 
Programmierung von Microcontrollern. Es ist allerdings zweifellos die 
geeignete Sprache zur Programmierung des Raspberry Pi, auch wenn das 
nicht die Frage war.

Deine Frage zu beantworten, fällt nicht leicht. Einerseits gibt es da 
die Religionskriege, wie Du in vielen (t)untigen Antworten erkennen 
kannst. Da gibt es Jünger von Assembler, C und Bascom, und sie alle 
wollen sich und anderen bestätigen, daß sie die die einzig wahre 
Programmiersprache (tm) ausgewählt haben und die größten Genies unter 
Gottes Sonne sind. Und wie Du hier live sehen kannst, werden die 
Wortgefechte zwischen den jeweiligen Befürwortern mit einer religiösen 
Inbrunst geführt, daß es eine wahre Freude ist.

Grundsätzlich halte ich Microcontroller aller Art für eine sehr 
schlechte Plattform, um Programmieren zu lernen, wegen der vielen 
Besonderheiten bei der Mikrocontrollerprogrammierung und vor allem an 
den schwierigen und schwer zugänglichen Debuggingmöglichkeiten. Um 
Programmieren zu lernen, würde ich Dir wärmstens empfehlen, eine 
Standardplattform und eine Standardprogrammiersprache zu verwenden. 
Dafür gibt es dann auch massenhaft Bücher, Tutorials und seriöse 
Internet-Ressourcen.

Beim Programmierenlernen geht es grundsätzlich um mehrere Dinge. Einmal 
geht es darum, eine bestimmte Denk- und Herangehensweise zu lernen, wie 
komplexe technische Probleme in lösbare Einzelprobleme zerlegt und diese 
mit den Mitteln einer Programmiersprache gelöst werden können. Dieser 
Teil ist von der verwendeten Programmiersprache weitgehend unabhängig 
und der wahrscheinlich für die meisten Menschen schwierigste Teil.

Dann geht es darum zu lernen, mit konkreten Programmierwerkzeugen einer 
bestimmten Sprache umzugehen, also mit dem Editor, dem Compiler und dem 
Debugger. Das ist nur teilweise unabhängig von der verwendeten Sprache, 
vieles von dem hierbei erworbenen Wissen ist übertragbar.

Außerdem geht es darum, eine konkrete Sprache zu lernen, also die 
Syntax, das Vokabular, die Grammatik und die Orthografie einer 
bestimmten Sprache. Das ist anfangs schwierig, später aber die 
leichteste Übung; wer eine Programmiersprache gut beherrscht, findet 
sehr schnell Zugang zu anderen Sprachen. Die Konstrukte aller Sprachen 
sind nämlich dieselben, auch wenn sie verschieden ausgedrückt werden.

Es kommt daher darauf an, was Du machen und wie Du Dich weiterentwickeln 
willst.

Assembler halte ich für wenig geeignet, um mit dem Programmieren 
anzufangen: das ist zwar möglich, hat aber die höchste Einstiegshürde. 
Wenn Du Mikrocontroller programmieren willst, ist es später einmal 
sicher sinnvoll, ein bisschen Assembler für zeitkritische Bereiche zu 
können, aber das ist ein fortgeschrittenes Feature und Assembler-Code 
kann man ziemlich leicht punktuell dort in C einbinden, wo das sinnvoll 
ist. Hinzu kommt, daß die wenigsten Assemblerprogrammierer wirklich so 
gut sind, daß sie die potentiell höhere Performanz von 
Assemblerprogrammen ausnutzen können: meistens erzielt die automatische 
Optimierung guter Compiler bessere Ergebnisse als die händische 
Assembler-Optimierung. Assembler ist im Übrigen starken Beschränkungen 
unterworfen, was die Portierbarkeit angeht: wenn Du Programme für 
Mikrocontroller und für Deinen PC schreiben willst, erfordert das 
unterschiedliche Assembler-Dialekte.

Wenn Du ausschließlich Mikrocontroller programmieren willst und einen 
möglichst schnellen und einfachen Einstieg mit schnellen Erfolgen haben 
möchtest, ist Bascom eine gute Wahl. Aber mit Bascom bist zu 
andererseits auch ziemlich festgelegt auf die Zielplattformen, die es 
unterstützt; damit kannst Du keine Programme erstellen, die hinterher 
auf Deinem PC oder dem Raspberry Pi laufen. Für Hobbyisten, die nur 
Mikrocontroller programmieren wollen, ist Bascom aber zweifellos 
ausreichend.

Wenn Du einmal professionell und nicht nur Mikrocontroller programmieren 
möchtest, ist C sicherlich die beste Wahl, aber die Einstiegshürde ist 
etwas höher als bei Bascom. Andererseits hat C den Vorteil, daß Du für 
verschiedene Zielplattformen dieselben Werkzeuge benutzen kannst, 
nämlich den C-Compiler gcc aus der GNU Compiler Collection (GCC). Das 
hat mehr Vorteile, als es auf den ersten Blick ausschaut: Du kannst Dir 
kleine Kommandozeilenprogramme für Windows oder Linux schreiben, um 
bestimmte Features zu testen. Und Du kannst C natürlich auch nutzen, um 
Programme für Windows und / oder Linux zu schreiben. C hat eine deutlich 
höhere Einstiegshürde als Bascom, aber eine deutlich geringere als 
Assembler. Außerdem ist C sicher die beste Basis für die 
Weiterentwicklung Deiner Programmierfähigkeiten und das Erlernen neuer 
Sprachen.

Ein meiner Meinung nach ganz guter Einstieg sind die hier auf der Seite 
im AVR-GCC-Tutorial verlinkten Seiten, sowie das Buch 
"AVR-Mikorcontroller in C programmieren" von Dr. Günter Spanner im 
Franzis-Verlag. Das ist ein dünnes Büchlein, nur 190 Seiten mit vielen 
Grafiken, das neben der nötigen Infrastruktur und einigen 
Bastelprojekten auch einen kurzen Einblick in die Programmiersprache C 
gibt.

HTH,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Martin,

Martin Vogel schrieb:
> Hab zwar keinen Warn-Beitrag gesehe, aber bleibt ruhig in eurer
> (kleinen) Welt. Es ist schon faszinierend, wie vehement da C verteidigt
> wird, wo doch niemand behauptet "C bääh".

Du kannst lesen? Dann lies bitte mal oben den Beitrag von "Janeistklar 
(Gast)" vom 21.10.2013, 00:12 Uhr, der von "kryptischem C-Müll" spricht. 
Oder den Beitrag von "HAL2000 (Gast)" vom 21.10.2013, 22:08 Uhr, der C " 
Eine der schlimmsten Programmiersprachseuchen die sich etabliert haben, 
widerwärtig in vieler Augen und auch Solchen, die sich jeden Tag mit 
diesem Wahnsinn herumärgern müssen" nennt.

HTH,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Yalu,

Yalu X. schrieb:
> Auch dem TE ist damit nicht sehr geholfen, da er wohl – abgesehen von
> ein paar Versuchen mit Python, das auf seinem ATtiny ohnehin nicht
> anwendbar ist – keinerlei Programmiererfahrung hat.

Naja, für die großen AVRs gibt es einen Python-Interpreter namens 
PyMite. Aber einem Anfänger solch eine experimentelle Plattform zu 
empfehlen, ist bestenfalls eine böswillige Gemeinheit.

LG,
Karl

von Jörg P. R. (jrgp_r)


Lesenswert?

Karl Käfer schrieb:
> Wenn Du ausschließlich Mikrocontroller programmieren willst und einen
> möglichst schnellen und einfachen Einstieg mit schnellen Erfolgen haben
> möchtest, ist Bascom eine gute Wahl. Aber mit Bascom bist zu
> andererseits auch ziemlich festgelegt auf die Zielplattformen, die es
> unterstützt; damit kannst Du keine Programme erstellen, die hinterher
> auf Deinem PC oder dem Raspberry Pi laufen. Für Hobbyisten, die nur
> Mikrocontroller programmieren wollen, ist Bascom aber zweifellos
> ausreichend.

Genau das will ich machen.
Ich möchte lediglich damit etwas rumspielen und mich freuen wenn's was 
wird.
Mich faszinieren Lauflichter wie auf einer Kirmes mit etlichen Abfolgen 
oder Leuchtreklamen z.b. in Las Vegas.
Bevor jetzt jemand denkt ich will Riesenräder ausstatten oder 
Leuchtreklamen in Las Vegas entwerfen, nein will ich nicht aber für mein 
kleines Kämmerlein, ein Lauflicht aus LED's oder unnütze Nachrichten auf 
einem LCD, möchte ich das. Ist für mich halt ein Ausgleich und Hobby.

@ D (Gast)
Das "Atmel Evaluationsboard V2.01" zu 14,95€ und das AddOn Board V1.0 
mit dem LCD zu 24,95 €. Beides als Bausätze. Die beiligende Beschreibung 
ist nichts für blutige Anfänger. Hier im Forum kommst du am schnellsten 
weiter.
Damit ich alle Port von meinem ATTiny2313 nutzen kann, habe ich, wie 
schon beschrieben, mir auf Streifenraster einen IC-Sockel, einen 22pf 
und daran Drähte gelötet. Das Platinchen wird vom AddOn mit Strom 
versorgt und die Port kann ich in die Lötkelche pfriemeln. So kann ich 
alle Komponenten des AddOn nutzen. Das gleiche mache ich auch mit den 
anderen Sockel die auch auf dem Prog. Board sind. Als Nebeneffekt muss 
nicht auch noch das andere Board mit Strom versorgt werden. Nachteil ist 
das man den ATTiny umstecken muss.

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.