Einrücken
-
Allgemeines:
- Kommentare auf Englisch
- stdio.h ist unbenutzt.
- Deinen Kommentarinhalt hat _matze schon kritisiert. Du beschreibst triviales, aber lässt das interessante weg.
- Besorg dir einen Editor mit Autoeinrückung. Glaubst du ich hätte das für dich alles von Hand gemacht?
- Leere Schleifen markiert man durch Semikolon, nicht durch leeren Körper
- Endlosschleifen sind üblicherweise
for( ;; )
, nicht while(1) - Weniger Leerzeilen!
- Mehr Leerzeichen! Besonders zwischen Kommentarzeichen und Kommentar.
Hier eine Einrückung, GNU-Style:
#include <t89c51ac2.h> // Header für Controller "AT89C51AC3" #include <stdio.h> #define stepper P1_0 // Eingang für Rechtslauf #define stepper P1_1 // Eingang für Linkslauf void delay(); void main() { P2 = 0x00; P1 = 0X00; // P2 ausgang zum Schrittmotor // Und was ist P1? for(;;) { if(P1_0 == 1) { P2 = 0x0C; // 0x0C = 1100 binär -> Ausgang 3 und 4 sind an delay(); P2 = 0x09; // 0x09 = 1001 binär -> Ausgang 1 und 4 sind an delay(); P2 = 0x03; // 0x03 = 0011 binär -> Ausgang 1 und 2 sind an delay(); P2 = 0x06; // 0x06 = 0110 binär -> Ausgang 2 und 3 sind an delay(); while(P1_1 == 1); // Erklärung, was das soll. Nicht erklären, wie eine Schleife funktioniert! } if(P1_1==1) { P2 = 0x06; // 0x06 = 0110 binär -> Ausgang 2 und 3 sind an delay(); P2 = 0x03; // 0x03 = 0011 binär -> Ausgang 1 und 2 sind an delay(); P2 = 0x09; // 0x09 = 1001 binär -> Ausgang 1 und 4 sind an delay(); P2 = 0x0C; // 0x0C = 1100 binär -> Ausgang 3 und 4 sind an delay(); while(P1_0 == 1); } } } void delay() { // Zeitverzögerungsschleife. Hier mehr Information. Wie lange? Warum? unsigned char i,j,k; // Hier Erklärung, warum drei verschachtelte Schleifen, statt nur einer for(i = 0; i < 6; i++) for(j = 0; j < 255; j++) for(k = 0; k < 255; k++); }
-
#include <t89c51ac2.h>
eigene Headerdateien kennzeichnet man üblichweise mit "" und nicht <>
#define stepper P1_0 //Eingang für Rechtslauf #define stepper P1_1 //Eingang für Linkslauf
das dürfte sinnfrei sein
void main()
das ist nicht standardkonform
void delay(){ // Zeitverzögerungsschleife unsigned char i,j,k; for(i=0;i<6;i++) for(j=0;j<255;j++) for(k=0;k<255;k++); }
das geht sinnvoller mit Standardmitteln (clock()), wenn auch nur als busy-loop
-
Wutz schrieb:
void main()
das ist nicht standardkonform
void delay(){ // Zeitverzögerungsschleife unsigned char i,j,k; for(i=0;i<6;i++) for(j=0;j<255;j++) for(k=0;k<255;k++); }
das geht sinnvoller mit Standardmitteln (clock()), wenn auch nur als busy-loop
Das sieht mir doch sehr nach einer freestanding Implementation aus, wo dies eventuell nicht anders geht. Oder der Threadersteller hat keine Ahnung, was ich bei dieser Fragestellung nicht ausschließen mag (_matze hat da vollkommen Recht mit seiner Eingangsbemerkung). Besonders nachdem du mich auf
Wutz schrieb:
#define stepper P1_0 //Eingang für Rechtslauf #define stepper P1_1 //Eingang für Linkslauf
das dürfte sinnfrei sein
aufmerksam gemacht hast. Autsch! Ist mir beim ersten Lesen gar nicht aufgefallen.
-
Freestandig implementation mit stdio.h?
Diese Compilerdokumentation möchte ich gerne mal sehen, mind. alle Schnittstellen zur (stdio)Standardbibliothek müssten dort aufgeführt werden, da freestanding implementation erstmal keine (Standard)Bibliothek kennt, auch "void main()" müsste dann dort entsprechend dokumentiert sein.
-
Benutze einfach die Tools indent oder astyle.
-
Wutz schrieb:
#include <t89c51ac2.h>
eigene Headerdateien kennzeichnet man üblichweise mit "" und nicht <>
Die kommt schon vom System. Ist für einen µC.
SeppJ schrieb:
Allgemeines:
- Kommentare auf Englisch
Immer wieder die alte Leier.
Sinnlose Diskussion. Ich bin anderer Meinung.
-
Den Compiler interessieren Einrückungen und Kommentare nicht. Das dient nur der Lesbarbarkeit und dem Verständnis des Programmes. Man kann sich mit grosser Mühe auch totkommentieren.
for (i=0;i<10;i++) // Schleife mit der Laufvariable i, beginnend bei 0, endend bei 9 // insgesamt 10 Durchläufe { .... }
-
Wutz schrieb:
Freestandig implementation mit stdio.h?
Das wiederum schiebe ich darauf, dass der Threadersteller keine Ahnung hat, was er überhaupt tut.
DirkB schrieb:
SeppJ schrieb:
Allgemeines:
- Kommentare auf Englisch
Immer wieder die alte Leier.
Sinnlose Diskussion. Ich bin anderer Meinung.Sizin görüş için bir sebep var mı?
Gallwch hyd yn oed, mae'n rhaid, yn disgwyl rhaglennydd i siarad Saesneg ond nad ydych yn gallu disgwyl i bob rhaglennydd i siarad Almaenwr.
אויב דעמאָלט קיין פּראָגראַמיסט אַנפאַנגט אין זיין אייגן שפּראַך צו באַמערקן, וואָס איז ינקרעדאַבלי קאַנפיוזינג.
Kial vi ne devus diskuti ĝin? Ĉu vi havas argumentojn?
-
SeppJ schrieb:
Wutz schrieb:
Freestandig implementation mit stdio.h?
Das wiederum schiebe ich darauf, dass der Threadersteller keine Ahnung hat, was er überhaupt tut.
Wieso? Du bist doch mit der freestanding implementation angekommen.
Falls es z.B. der Keil C51 ist (der hat diesen einen Header), dann gibts da auch eine (abgespeckte) stdio.h. Ob das jetzt freestanding ist oder nicht halte ich für pure Erbsenzählerei. Das interessiert in dem Umfeld niemanden.
DirkB schrieb:
SeppJ schrieb:
Allgemeines:
- Kommentare auf Englisch
Immer wieder die alte Leier.
Sinnlose Diskussion. Ich bin anderer Meinung.Sizin görüş için bir sebep var mı?
Gallwch hyd yn oed, mae'n rhaid, yn disgwyl rhaglennydd i siarad Saesneg ond nad ydych yn gallu disgwyl i bob rhaglennydd i siarad Almaenwr.
Und? Wozu sollen türkische Schüler ihre Schulprojekte auf englisch kommentieren? Das bringt doch nur was bei internationalen Konzernen oder Open-Source-Projekten.
Letzteres (ist das walisisch oder gälisch?) verbieten zu wollen ist wahrscheinlich sowieso ein Affront gegen die Bemühungen, diese Sprachen am Leben zu erhalten
אויב דעמאָלט קיין פּראָגראַמיסט אַנפאַנגט אין זיין אייגן שפּראַך צו באַמערקן, וואָס איז ינקרעדאַבלי קאַנפיוזינג.
Kial vi ne devus diskuti ĝin? Ĉu vi havas argumentojn?
Antisemitismus!!1
Kenn ich nicht, Esperanto? OK, das braucht kein Mensch
-
Bashar schrieb:
Das wiederum schiebe ich darauf, dass der Threadersteller keine Ahnung hat, was er überhaupt tut.
Wieso? Du bist doch mit der freestanding implementation angekommen.
Ja. Und? Der µIC hat bestimmt kein Betriebssystem und keine Ausgabe. Das stdio.h ist einfach nur falsch.
Und? Wozu sollen türkische Schüler ihre Schulprojekte auf englisch kommentieren? Das bringt doch nur was bei internationalen Konzernen oder Open-Source-Projekten.
Aus dem gleichen Grund, warum sie ihren Code richtig einrücken oder allgemein, warum sie sauber programmieren sollten. Interessiert nämlich eigentlich auch niemanden, übt aber für "richtige" Programme.
-
SeppJ schrieb:
Bashar schrieb:
Das wiederum schiebe ich darauf, dass der Threadersteller keine Ahnung hat, was er überhaupt tut.
Wieso? Du bist doch mit der freestanding implementation angekommen.
Ja. Und? Der µIC hat bestimmt kein Betriebssystem und keine Ausgabe.
http://www.keil.com/support/man/docs/c51/c51_stdio_h.htm
Das stdio.h ist einfach nur falsch.
Weil sie nicht benutzt wird, aber auch nur deswegen. Sonst hätte sich der Compiler schon beschwert...