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
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!
"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
> 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.
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.
@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.
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
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.