Guten Tag, ich habe einen Beitrag beigesteuert (main.c),von dem ich glaube,daß er interessant für einige ist. Es handelt hierbei um ein kleines Kunststoffgehäuse mit einer Elektronik,die unter anderem einen Attiny 84A, eine Funkstrecke mit Sender und Empfänger (433 MHz), 5 Tasten,zwei Fotozellen und Keingram beheimatet. Das alles ist verbunden mit einer Software, die einen LED-Sreifen ansteuert, der u.a. einen automatischen Betrieb zuläßt.Per Funk kann es diese LED-Ansteuerung zu einem Slave-Modul übertragen, das eigene LED-Streifen steuert. Wenn Interesse daran besteht, dann lesen bitte diese "main.c". Mit freundlichen Grüßen - arras -
Gast
#6178731
Funktioniert das gezeigte Programm wirklich? Erster Blick: Deine main-Schleife schließt die Definition von
1 | |
mit ein. Diese ruft sich selbst rekursiv auf:
1 | |
2 | |
3 | |
4 | |
5 | |
Die Formatierung des Quelltextes ist katastrophal, die Strukturierung ebenso.
Gast
#6178745
Tippgeber schrieb: > Diese ruft sich selbst rekursiv auf: > // **** Init_Timers,Init_I2C und Init_ADC **** > // > Init_Timers (); > Init_ADC (); > Init_Anlauf(); // mehr z.Z. nicht.. Ok, diesen Teil nehme ich zurück, nachdem ich das Programm mal in einen Codeeditor geladen habe. Es bleibt aber dabei, dass das Ganze sehr unübersichtlich ist und schlecht formatiert.
Gast
#6178946
Hallo, bei meinem Entwicklungssystem (AVR,Atmel Studio 7) sieht aber alles sehr aufgeräumt aus. Ich kann Deine Einwende nicht nachvollziehen. Es liegt am Editor, der macht einem TAB (09) irgentetwas..nur keine TAB. Er muß bei einem Tabulator-Zeichen genau 4 Leerstellen machen. Gruß arras
fjm schrieb: > Er muß bei einem Tabulator-Zeichen genau 4 Leerstellen machen. Schreib es doch einfach in den Quelltext hinein…
Gast
#6179143
Tippgeber schrieb: > Es bleibt aber dabei, dass das Ganze sehr unübersichtlich ist und > schlecht formatiert. und von mäßiger Code-Quality = 1.Lehrjahr!, weil: - massenweise sinnlose Initialisierung von global Variables mit 0x00 - tonnenweise global Variables ist strukturlos - händisches Adressenhandling im EEPROM, das macht struct von selbst - if () if () ..., wenn ein if () mit der gesamten Bedingung reicht - massenweise redundante Codebereiche - massenweise Variable-Bezeichner ohne Sinn - ... Ich könnte hier x-weitere Punkte listen. Dieser Code ist unübersichtlich bzw. unlesbar und hat Klippschulniveau! Ich würde mal ein C-Buch lesen UND mir guten Code anschauen UND dazu lernen oder doch lieber Kuchenbacken.
Gast
#6179232
Hallo AllesKönner ! Ich wollte kein Lehrbuch in C schreiben, noch ein kurzes Quellcode-Release machen. Es kem mir darauf an, eine - ggf. umstängiges und weitreichendes Werk zu generieren, in dem auch Sequenzen enthalten sind, die nicht im HEX-file wiederverwenden sind. Tatsache ist aber, der Code passt in in 8 kb Speicher. Gerade die Programme, die etwas mit "Funk" zu tun haben, machen dies notwengig. Selbstverständlich sind alle Module getestet und laufen seit Wochen. Gruß fjm
Gast
#6179489
fjm schrieb: > Ich wollte kein Lehrbuch in C schreiben, Dann hast du jetzt wohl doch ein Buch mit einem negativ Beispiel abgegeben, wie man nicht programmiert! Beschäftige dich auch mal mit Refactoring. Vor dem Coding kommt besser auch das Denken bzgl. Programm-/Datenstrukturen, was du hier wohl komplett ausgelassen hast. Deine zahllosen global Variables sind eine Vergewaltigung einfachster Grundsätze der Programmierung. Die Lesbarbeit deines Codes ist gleich null, zwei Beispiele Refactored, 3 Instructions
1 | |
2 | |
3 | |
4 | |
5 | |
Original, 6 Instruction und sinnloses !(...)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Refactored
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
Original, sinnlose Comments, redundante Schreibweise:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
-------------- Mod: Formatierung korrigiert, es muss lauten:
1 | |
und nicht [\c]
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.