Forum: Compiler & IDEs passende Befehle finden??


von Donald (Gast)


Lesenswert?

Hi

Bin ein Neuling im C Programmieren. ICh kenne von Assembler, dass man
sich das Instruction Set anschaut und dann drauf los programmiert. In C
finde ich das nicht so einfach. Das Tutorial habe ich zwar durch, leider
weiss ich nicht, wie ich prinzipiell vorgehe, um einen Befehl zu
finden.

Konkret möchte ich gerade eine Motorsteuerung machen (mit PID Regler).
Ich muss also die Stellgrösse in eine PWM Grösse für's OCR Register
und ein bit für die Richtung rausbekommen. Bei signed Variablen ist ja
vorne die 1 bei negativen Zahlen, also habe ich das mal per:
  if (stell & (1<<7))
abgefragt. Im negativen Fall muss dann noch invertiert werden und eins
drauf...(um den Wert für's OCR Register zu bekommen).

Aber da hätte ich ja gleich bei Assembler bleiben können.
Also wie geht man in so einem Fall am besten vor? Und selbst wenn man
es so macht, wie finde ich (ohne immer euch fragen zu müssen) z.B. den
Befehl, um ein Byte zu invertieren?

Vielen Dank
Donald

von ,,,, (Gast)


Lesenswert?

Du solltest dir Grundlagenliteratur zu C besorgen. Eine gute
Anlaufstelle ist eine beliebige Leihbücherei in deiner Nähe.*


*) Natürlich findest du auch im Internet mindestens 50000 C-Tutorials.
Einfach mal Google bemühen!

von peter dannegger (Gast)


Lesenswert?

"ICh kenne von Assembler, dass man sich das Instruction Set anschaut
und dann drauf los programmiert."

Ich aber nicht !

So braucht man nur unnötig viel Zeit und macht unnötig viele Fehler.

Ich kenne Programmieren nur so, daß man erstmal den PC ausschaltet, nen
Stapel Papier und nen gespitzten Bleistift nimmt und sich
Programmablaufpläne macht.
Dann macht man aus den einzelnen Ablaufplänen Unterfunktionen.
Und dann erst schaltet man den PC wieder an und setzt die
Unterfunktionen in Befehle um.


"Also wie geht man in so einem Fall am besten vor?"

Erstmal, C hat keine Befehle, sondern Operatoren, Syntaxregeln und
Bibliotheksfunktionen. Und da hilft es nichts, die muß man lernen oder
nachschlagen.
Und dann geht man genau so vor, wie oben beschrieben.

Nur Trolle setzen sich gleich an den PC und schreiben:

int main(void)
{...}

und grübeln dann stundenlang darüber, wie sie die {...} ausfüllen.


Peter

von Rolf Magnus (Gast)


Lesenswert?

> Bei signed Variablen ist ja vorne die 1 bei negativen Zahlen, also
> habe ich das mal per:  if (stell & (1<<7))
> abgefragt.

Stattdessen könnte man natürlich auch einfach abfragen, ob der Wert
negativ ist: if (stell < 0)

> Im negativen Fall muss dann noch invertiert werden und eins
> drauf...(um den Wert für's OCR Register zu bekommen).

Oder in einfach: stell = -stell;

Das Ganze kann man aber auch mit der Bibliotheksfunktion abs() machen:

stell = abs(stell);

> Und selbst wenn man es so macht, wie finde ich (ohne immer euch
> fragen zu müssen) z.B. den Befehl, um ein Byte zu invertieren?

Man schaut in seinem C-Buch nach.

von karlheinz (Gast)


Lesenswert?

der dannegger ist zum kotzen, dieser schwachmat. will seine alte
weisheit einen jungen menschen unterjubeln.
statt den jungen menschen zu helfen, damit sie hier zum forum vertrauen
aufbauen können, werden sie angekotzt.

von A.K. (Gast)


Lesenswert?

@karlheinz: Es bleibt dir unbenommen, hier ein ganzen C Handbuch
reinzuschreiben. Denn Donalds Text suggeriert, dass was auch immer er
gelesen hat, es ihm erkennbar an Grundlagen für
Hochsprachenprorammierung fehlt, und er verzweifelt einen Weg sucht, in
C so zu programmieren, wie er es in Assembler gewohnt ist. Da wird ein
einzelner Tip nicht gross weiter helfen.

von Reiner (Gast)


Lesenswert?

Donald,

Schau (und lies) mal hier:
http://www.galileocomputing.de/openbook/c_von_a_bis_z/

Ich würde aber auch nicht raten "drauflos zu programmieren"!  Das
geht in C schief.  Nimm Dir doch mal ein C Programm vor und versuche es
zu verstehen.

Gruß
Reiner

von Olaf_K (Gast)


Lesenswert?

>der dannegger ist zum kotzen...

Genau, kommt hier an mit Papier-und-Bleistift, mit dem Zeug kann doch
kein junger Mensch heutzutage umgehen. Ist so ein Bleistift überhaupt
ROHS-konform? Am Ende vergiftet sich der junge Mensch noch damit.

MfG Olaf

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.