Atmega8 & 74HC595 & CodeVision

Gast #1461699
Lesenswert?

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?
Angehängte Dateien:
Gast #1462118
Lesenswert?

@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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren