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 -
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.
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
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.
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
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
// wenn Gleichstand besteht (A==B), Fast-PWM-Art (0101 = 5)
Eine eigene Frage?
Dieser Thread ist über 6 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.