Hallo zusammen,

versuche schon den ganzen Tag erfolglos mein 74HC595 vernünftig anzusteuern. Das Problem ist, dass es zwar mit dem veränderten Pseudocode aus dem RN-Wissen Tutorial funktioniert aber mir das etwas sehr spektakulär aussah und so habe ich versucht nach bestem Wissen selber etwas hinzubekommen aber so richtig was ankommen tut nichts. Vielleicht kann ja mal einer drüber schauen und Tipps geben

spi.h
Code:
#ifndef SPIF
#define SPIF 7
#endif

unsigned char spi(unsigned char data)
{
SPDR=data;
while ((SPSR & (1<<SPIF))==0);
return SPDR;
}
main.c
Code:
#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun mit 3686400 definiert"
#define F_CPU 16000000UL     /* Quarz mit 3.6864 Mhz  */
#endif


#include <avr\io.h>
#include <util\delay.h>
#include "spi.h"


#define DD_MOSI     PINB5

#define DD_SCK     PINB7

#define DDR_SPI    PORTB

void SPI_MasterInit(void)

{

// Set MOSI and SCK output, all others input

DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);

// Enable SPI, Master, set clock rate fck/16

SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);

}



int main(void) {

SPI_MasterInit();


  while (1)
      {
		  PORTB |= (1<<PB4);
      // Place your code here
	  	  spi(0xff);
	_delay_ms(2000);
	spi(0);
	_delay_ms(2000);
		PORTB &= ~(1<<PB4);
		
      };


}
Benutze einen atmega32 und ja ich weiss alles etwas wirsch aber wäre trotzdem über Hilfe dankbar.

Gruß Snaper[/code]