Forum: Mikrocontroller und Digitale Elektronik Schieberegister an Atmega8


von Joh (Gast)


Lesenswert?

Hallo,
ich habe ein Problem mit einem Schieberegister.
Und zwar versuche ich seit ca 5 Tagen ein solches mit einem Atmega8 
anzusteuern. Zum Ausprobieren wollte ich einfach mal 8 LEDs individuell 
zum leuchten bringen.
Nach langer Suche und vielen durchstöberten Forenbeiträgen muss ich mich 
leider geschlagen geben... mein Programm (teils selbst, teils 
abgeschrieben) funktioniert einfach nicht :(

Ich hoffe ihr könnt mir helfen.
Beste Grüße,
Joh







Hier mein Code:

$regfile = "m8def.dat"
$crystal = 16000000

Ddrc = &B11111111

Shift_data Alias Portc.2
Sck Alias Portc.1
Latch Alias Portc.4

Dim Daten As Byte



Daten = &B10101010

Do

Shiftout Shift_data , Sck , Daten , 1
Set Latch
Reset Latch




Waitms 1000
Loop


End

von Michael (Gast)


Lesenswert?

Joh schrieb:
> mein Programm (teils selbst, teils abgeschrieben) funktioniert einfach
> nicht :(

Welch göttliche Formatierung ...

Ist deine Hardware auch irgendwie verschaltet und hat 
Typenbezeichnungen?

von Joh (Gast)


Lesenswert?

Ja,
das Schieberegister heißt 74hc595, hier das datenblatt:
http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

von Joh (Gast)


Lesenswert?

und die Leitungen sind folgendermaßen verbunden:

Latch = STCP    --> PortC.4
Sck = SHCP      --> PortC.1
Shift Data = STCP --> PortC.2

von Odenwälder Tannenbaum (Gast)


Lesenswert?

Und wo ist DS? Das ist die serielle Leitung. Dort werden die Daten 
übertragen!
Und OE? Damit werden die geladenen Bits 'freigelassen'.

von Joh (Gast)


Lesenswert?

Odenwälder Tannenbaum schrieb:
> Und OE? Damit werden die geladenen Bits 'freigelassen'.

Liegt auf GND


Odenwälder Tannenbaum schrieb:
> Und wo ist DS? Das ist die serielle Leitung. Dort werden die Daten
> übertragen!

Oh, da habe ich mich verguckt vor dem letzten Beitrag,
Ds = shift Data und liegt auf PortC.2

Sorry, ich befasse mich erst seid kurzem mit Mikrocontrollern und bin 
noch sehr unsicher bei dem was ich tue..

Grüße,
Joh

von Karl H. (kbuchegg)


Lesenswert?

Joh schrieb:
> Odenwälder Tannenbaum schrieb:
>> Und OE? Damit werden die geladenen Bits 'freigelassen'.
>
> Liegt auf GND

Und MR vom 595 (Pin 10) liegt hoffentlich an +5V

von Joh (Gast)


Lesenswert?

Karl Heinz schrieb:
> Und MR vom 595 (Pin 10) liegt hoffentlich an +5V

Ja, richtig.
Stimmt mein Programmcode denn prinzipiell?

von Karl H. (kbuchegg)


Lesenswert?

Joh schrieb:
> Karl Heinz schrieb:
>> Und MR vom 595 (Pin 10) liegt hoffentlich an +5V
>
> Ja, richtig.
> Stimmt mein Programmcode denn prinzipiell?

na ja. ist ja nichts da. An
1
Shiftout Shift_data , Sck , Daten , 1
2
Set Latch
3
Reset Latch
gibt es ja kaum was, was schief gehen kann.

von Joh (Gast)


Lesenswert?

Karl Heinz schrieb:
> na ja. ist ja nichts da. AnShiftout Shift_data , Sck , Daten , 1
> Set Latch
> Reset Latch
> gibt es ja kaum was, was schief gehen kann.

Ja das denke ich mir ja auch.. :)
aber müssten meine Leds, die ich an die Ausgänge angeschlossen habe denn 
abwechselnd leuchten, so wie ich es programmieren wollte?

von Karl H. (kbuchegg)


Lesenswert?

Blöde Frage: deine LED sind nicht zufällig falsch rum angeschlossen?

von Joh (Gast)


Lesenswert?

Nein, meine LEDs sind richtig herum angeschlossen...

Du wirst jetzt lachen...

ich habe eben noch einmal versucht das ganze auf einem anderen board 
aufzubauen und mir ist dabei eingefallen, dass die tolle Pollin 
Punktrasterplatine für den Atmega8 FALSCH beschriftet ist.

Das Problem war, dass der PortC gar nicht dort ist, wo PortC drauf 
steht, sondern laut einer Schablone von 
http://halvar.at/elektronik/pollin_adapter_atmega8_schablone/
ganz links.


Ich bedanke mich für eure Bemühungen und Entschuldige mich, eure Zeit 
geraubt zu haben ;-)

Schönen Abend noch!
Grüße,
Joh

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.