www.mikrocontroller.net

Forum: Compiler & IDEs passende Befehle finden??


Autor: Donald (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: karlheinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf_K (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.