welcher Mikrocontroller für Hobbyist?

Volker Neurath schrieb:

dann ist i=2.... in Pascal ein Inc(i); ist auch nicht viel länger als i++; Gruß Andy

Reply to
Andreas Weber
Loading thread data ...

Hi!

Was hast Du geraucht, daß Du in meinen Postings Worte liest, die ich nicht geschrieben hab? Gib mir was ab, ich will auch! :-)

Gruß, Michael.

Reply to
Michael Eggert

Übersichtlich im Vergleich zu Assembler. C hat eben den Vorzug dass es praktisch auf jedem uC verfügbar ist.Wenn dir C nicht gefällt nimm Basic, Pascal oder was auch immer. Letztlich ist die Programmiersprache nur eine Gewöhnungssache. Alle bieten mehr oder weniger strukturierte Programmierung, komplexe Datenstrukturen, lokale Variablen, Fliesskommaberechnungen, usw.

Ich weiss, das kann man alles in Asssembler auch machen. Aber du brauchst die x-fachen Zeit es zu schreiben, zu debuggen und zu kommentieren.

Und wenn man sich den generierten Code mal ansieht, den ein guter C-Compiler für einen uC abliefert, ist man erstaunt, wie effektiv das ist. Man darf nicht alles mit Windows-Maßstäben messen, wo jedes Hello-World schon 5 MB hat und ein Dutzend Runtime-Libraries braucht.

IMHO verteidigen die Assembler-Freaks ihre Arbeitsweise deswegen, weil sie a) nicht bereit sind, etwas anderes zu lernen und b) die Firma damit von ihnen abhängig wird. Ein Assembler-Programm das in der Komplexität über einen LED-Farbwechelblinker rausgeht, ist im allgemeinen für jeden anderen unwartbar. _kann_ natürlich mit C auch passieren.

Georg

Reply to
Georg Meister

Michael Eggert schrieb:

Leider tun das die wenigsten.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
Reply to
Tilmann Reh

Anders geht es auch nicht. Die Anweisung: i=i++; ändert den Wert von i nicht! Im Gegensatz zu: i=++i; was aber sehr umständlich ist.

mfg Andreas

Reply to
Andreas Krebs

Joerg schrieb:

Hallo,

ich meinte kein Inline-Assembler, sondern Unterprogramme in Assembler. Aber auch Inline-Assembler hat bei mir mit Keil C166 funktioniert.

Vom Zehnfachen habe auch nicht ich geschrieben, das hatte ich nur=20 zitiert, was Du dann mir als Zitat untergeschoben hast.

Aber 100 % Assembler w=FCrde ich vermeiden wenn es irgendwie geht und mit= =20 einem guten Compiler-Assembler Paket sollte es m=F6glich sein nur die=20 zeitkritischen Teile in Assembler zu schreiben.

Bye

Reply to
Uwe Hercksen

Michael Eggert schrieb:

Sorry, war wohl schon bißchen spät...

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

Daher schreibt man lieber "if (0 = a)", damit kann der Compiler den Vertipper erkennen. Das hilft aber natürlich nicht, wenn man zwei l-values vergleicht.

Wie wäre es mit

i = 1;

*grins*, Nils
Reply to
Nils Juergens

"Michael Eggert" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

Leider Nein, es fehlen geschachtelte Funktionen (immerhin erspart das das uneffiziente display) und WITH (gluecklicherweise, vermeidet dedizierte Programmierfehler).

Ansonsten sind natuerlich beides prozedurale Programmiersprachen, ebenso wie BASIC.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Hi,

"Sebastian Suchanek" schrieb

und deshalb wurde es im o.a. AVRco auch implementiert ...

Gruß Gunter

Reply to
Gunter Baab

MaWin schrieb:

[Pascal und C]

Nein.

BASIC ist nicht wirklich eine prozedurale Sprache, man hat erst spät einige Pascal-Features angeflickt.

Und C ist schon deshalb nicht direkt mit Pascal vergleichbar, weil wesentliche Datentypen einfach fehlen (boolean, string) und mühsam irgendwie angebastelt werden müssen.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
Reply to
Tilmann Reh

Tilmann Reh schrieb:

bool gibt's (C99), außerdem ist das Standard-Handling durchaus nicht mühsam.

string-Datentypen finde ich bei Pascal auch erst in extended Pascal, der ursprüngliche Standard hatte sowas nicht, so daß jede Implementierung ihre eigene Variante mitbrachte.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch
  • Sebastian Suchanek [2004-10-06 01:37]:

Ein anständiger Compiler erzeugt bei sowas eine Warnung, da er erkennen kann, dass dieser Ausdruck immer falsch ist (nicht wahr). Wenn man natürlich Warnungen nicht einschaltet, ist man selber schuld. Dieses ":=" ist aber auch gewöhnungsbedürftig.

Gruß, Bernhard

--
Der elektronische Marktplatz wird unsere Kultur ebenso verändern wie
Gutenbergs Druckerpresse die Welt des Mittelalters.
	-- Bill Gates
Reply to
Bernhard Walle

Sebastian Suchanek schrieb:

Zumindest der GCC beantwortet obiges Konstrukt (bei passendem -W) mit

"warning: suggest parentheses around assignment used as truth value"

So passiert mir der Fehler beim GCC eigentlich nicht mehr.

i = i++; dürfte AFAIK kein gültiges C sein da i zweimal vor einem Sequenzpunkt verändert wird.

formatting link
-> 4.3

Diese Schreibweise wurde ja von vielen späteren Sprachen auch verwendet also kann es so schlecht nicht sein.

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
Reply to
Matthias Weißer

"Tilmann Reh" schrieb im Newsbeitrag news:ck0lgq$vvm$ snipped-for-privacy@online.de...

Falsch. Eine waschechte. Man muesste noch nicht mal Prozeduren haben (GOSUB) um eine prozedurale Programmiersprache zu sein, Beispiel W

formatting link
.

Unnoetigerweise.

In jeder Programmiersprache, die Vergleiche erlaubt, gibt es den BOOLean. Es ist die Wertemenge, die die Vergleiche als Ergebnis abliefern (und die von IF akzeptiert werden).

Dir fehlt offenbar ein expliziter NAME fuer die Wertemenge, um zu erkennen, das es sie gibt.

Ich erinnere mich, das Pascal die Strings fehlten... PACKED ARRAY OF CHARACTER;

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Sebastian Suchanek schrieb:

[C Tippfehler-Fallen]

wer C ohne Lint benutzt, ist selbst schuld und soll nicht meckern (damit meine ich nicht Dich!).

PC-Lint ist eine grundlegende, nahezu unverzichtbare Investition für Embedded-Anwendungen in C. "Pure ANSI C"-Programmierer könnten vielleicht auch SPlint verwenden. Aber die 210EUR für PC-Lint bringen niemanden um, der mehr als ein paar Stunden C programmiert und Geld damit verdient. So schnell lohnt sich kaum ein anderes Tool.

"Lint early. Lint often. Lint is your friend."

Und nein, es ist IMNSHO _nicht_ die Aufgabe des Compilers, solchen Käse zu entdecken. Weshalb sollte jeder Compilerbauer noch einen statischen Codechecker entwickeln, wo es Lint gibt?

Der Compiler soll mich nur warnen, wenn er etwas nicht compilieren kann.

Ach ja, und ein paar MISRA-Regeln sind auch nicht ganz blöd, und ebenfalls von PC-Lint abgedeckt.

Oliver

--
Oliver Betz, Muenchen (oliverbetz.de)
Reply to
Oliver Betz

Ich seh hier kein X-No-Archive, kein smiley, gar nix. Könnt ihr eurer Nachwelt, die vielleicht in 2 Jahren aus euren Postings in google was über C lernt, vielleicht auch noch die Wahrheit über die angezogenen Probleme verraten?

Hint:

i = i++;

wird von jedem ernstzunehmenden Compiler standardkonform in einen einzelnen Maschinenbefehle übersetzt: HCF (halt and catch fire) :-)

Ein Compiler der if (a=0) als true bewertet, könnte allerdings auch versuchen, i auf 4 zu setzen, um den Programmierer nicht zu sehr zu langweilen :-)

Siehe

formatting link

Andreas

--
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.
- Brian Kernighan
Reply to
Andreas Hadler

Darauf wollte ich raus ;-)

Volker

--
Im uebrigen bin ich der Meinung, das TCPA verhindert werden muss.
Reply to
Volker Neurath

Hi,

"Dr Engelbert Buxbaum" schrieb

war mir klar, daß auf die Frage "welchen Controller unter Pascal" als "Antwort" kommt: --- > C lernen ! - sozusagen Thema verfehlt ;-) Hast Du Dir den AVRco mal angesehen. Ich finde den echt absolu super.

Schöne Grüße Gunter

Reply to
Gunter Baab

Gunter Baab schrieb:

Stimmt, so ist das - aber C ist halt "hip" heutzutage...

Hier ist noch einer (Pascal!):

formatting link

Gibt es für 8051, AVR, Z180 und Z380 - über die Qualität kann ich aber nichts sagen.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
Reply to
Tilmann Reh

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.