Hallo, Leute! Ich habe söben mal eine kleine Schieberegister-Library geschrieben, die auf dem ATmega32 mit 32MHz läuft. Als IC wird der 74hc595 verwendet und über diesen werden 8 Leds als Lauflicht betrieben. Bei Fragen oder anregungen stehe ich gerne zur Verfügung. MFG, DjElko! PS: Frohe Weihnachten!
In meiner Online-Hilfe für Windows Vista steht folgendes:
1 | Zum Extrahieren von Dateien aus einer komprimierten |
2 | RAR-Datei muss ein spezielles Programm für RAR-Dateien |
3 | verwendet werden. |
4 | |
5 | Als Alternative zu RAR-Dateien können ZIP-Dateien |
6 | verwendet werden, die von Windows komprimiert und |
7 | dekomprimiert werden können. |
Mahlzeit!
Frohe Weihnachten, das stört mich an Deiner Lib :
1 | #include "shift.c" |
Ich hätte da lieber sowas stehen :
1 | #include "shift.h" |
Leider überschreibt mir Deine Lib auch meine Port Settings. Denn die anderen Pins von PORTC benutzte ich doch auch noch ! Vielleicht sollte man in shift_init() besser verodern bzw ausmaskieren. Auch kann ich von ausserhalb die Port Konfig. nicht verändern. Wieso sollen nicht noch andere Teilnehmer am SPI Bus seperat ansprechbar sein sollen ? Vielleicht sollte man das ganze auch in die CodeSammlung verschieben ? Grüssle Thomas
:
Bearbeitet durch User
DjElko schrieb: > Ich hoffe das hilft dir weiter Es ist ja für die Allgemeinheit besser, die eher ZIP kennt. Deshalb meine Anmerkung. Einen ATmega habe ich nicht, aber wollte ja wenigstens mal einen Blick in den Code werfen. Wenn schon, dann müßte ich diesen auf PIC oder 8051 oder auch 8048 umportieren. Frohe Weihnachten, und frohes Basteln!
Thomas W. schrieb: > das stört mich an Deiner Lib : > #include "shift.c" > > Ich hätte da lieber sowas stehen : > #include "shift.h" OK. Warum eigentlich? > Leider überschreibt mir Deine Lib auch meine Port Settings. > Denn die anderen Pins von PORTC benutzte ich doch auch noch ! Klar! > Vielleicht sollte man in shift_init() besser verodern bzw ausmaskieren. Was meinst du damit? > Auch kann ich von ausserhalb die Port Konfig. nicht verändern. Warum? In der shift.h kann man die doch oben ändern odern nicht? > Wieso sollen nicht noch andere Teilnehmer am SPI Bus seperat ansprechbar > sein sollen ? Meinst du I²C? Wegen der Ports?
Naja, eine Lib ist dadurch gekennzeichnet das sie funktionalität nach aussen bringt. Es gibt also funktionen die nur im "innern" gebraucht werden und andere die als schnittstelle nach aussen dienen. In einer Headerdatei stehen die Funktionen nur die Funktionen die nach aussen sichbar sein müssen. Bei grösseren Projekten welche über mehrere Dateien / libs verteilt sind, kommt man manchmal nicht dran vorbei das sinch teile gegenseitig includieren. Includierst Du das .c File gibt es dann bruch. Gibt hier einen tollen Artikel dazu ;) -> Stichwort Headerfiles. Cool wäre wenn man der shift_init() per parameter z.B. die PortPins "erklären"/übergeben könnte. Aber das teil auch nicht die anderen Port Settings verändert. Bits welche gesetzt werden -> verodern Bits welche gelöscht werden mit einer Bitmaske verunden. Ich will ja nachträglich Deine Lib nicht verändern. Das Teil soll später auf meiner Platte liegen -ReadOnly- und an jede Hardware anpassbar sein. Eine gute Lib kann das ! -> Stichwort Bitmanipulation, siehe Artikel. Jetzt könnte man einen teil der Schieberegister für andere Sachen benutzen, da kaskadiert. Oder paralell per ChipSelect noch was anderes ansteuern. -> gibt auch einen tollen Artikel zum SPI... Eigentlich besteht Dein LED Problem aus zwei teilen : - Implementation der SPI Schnittstelle. (Die kann aber eingetlich senden und emfpangen) - Aufbereitung der LED Daten. Bin jetzt verweihnachtet...
:
Bearbeitet durch User
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.