Hallo, ich habe eine Schaltung mit einem Atmega 8 und einem 74HC595, nach dem Tutorial auf dieser Seite verschaltet (s. Anhang). An die Ausgänge des 74HC595 habe ich Widerstände und LEDs gehängt um erstmal zu testen ob das ganze funktioniert. Mein Programm, welches ich in CodeVison AVR verfasst habe sieht in groben zügen so aus: main.h: #include <mega8.h> // SPI functions #include <spi.h> #include <delay.h> // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=In Func0=In // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=T State0=T PORTB=0x00; DDRB=0x2C; ... // SPI initialization // SPI Type: Master // SPI Clock Rate: 4000,000 kHz // SPI Clock Phase: Cycle Start // SPI Clock Polarity: High // SPI Data Order: MSB First SPCR=0x5C; SPSR=0x00; ... while (1) { // Place your code here spi(0xff); delay_ms(2000); spi(0); delay_ms(2000); }; spi.h: #ifndef SPIF #define SPIF 7 #endif unsigned char spi(unsigned char data) { SPDR=data; while ((SPSR & (1<<SPIF))==0); return SPDR; } Leider tut sich nichts bei den LED, habe schon alle möglichen SPI-Modien ausprobiert, sowie gefühlte 100 mal die verkabelung gecheckt. Ich kann beobachten, wenn ich den OE* (13) offen lasse (also weder an VDD noch an GND), dann gehen alle LEDs aus und wieder an aber sobald ich OE* wieder anfasse oder mit VDD verbinde tut sich da nichts. Allerdings gehen dann auch nur alle LEDs an oder aus, egal welchen Wert ich bei spi(0x..) eintrage. Was mache ich falsch?
> ...wenn ich den OE* (13) offen lasse
CMOS-Eingänge lässt man einfach nicht offen.
Vielleicht wäre ein Blick ins Datenblatt hilfreich, um die Funktion des
/OE zu verstehen....
Olli schrieb:
> Was mache ich falsch?
ohne gross darüber nachzudenken :-)
wo generierst Du Deine positive Flanke für den Pin12?
@Bensch
> CMOS-Eingänge lässt man einfach nicht offen.
das ist mir schon klar, hatte ich auch nicht vor aber es ist mir bei den
zahlreichen Überprüfungen, ob meine Verkablung richtig ist aufgefallen.
Andreas W.: Danke Daran hat es gelegen. Wie dumm von mir :-(. Aber noch mal vielen Dank. Gruß Olli
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.