Forum: Mikrocontroller und Digitale Elektronik Schieberegister-Library


von DjElko (Gast)


Lesenswert?

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!

von DjElko (Gast)


Angehängte Dateien:

Lesenswert?

Upload vergessen...

von Wilhelm F. (Gast)


Lesenswert?

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!

von DjElko (Gast)


Angehängte Dateien:

Lesenswert?

Ich hoffe das hilft dir weiter

von HertzFrequenz (Gast)


Lesenswert?

Na toll. Das kommt dann gleich neben Tante Ernas Socken.

von Thomas W. (wagneth)


Lesenswert?

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
von Wilhelm F. (Gast)


Lesenswert?

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!

von Dj E. (djelko)


Angehängte Dateien:

Lesenswert?

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?

von Thomas W. (wagneth)


Lesenswert?

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
von Thomas W. (wagneth)


Lesenswert?

PS: Atmega32 bei 32MHz ? Muss man den mangels Bumms Overclocken ???

von Dj E. (djelko)


Lesenswert?

Thomas W. schrieb:

> Bin jetzt verweihnachtet...

ich auch... :-D

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
Noch kein Account? Hier anmelden.