Mit einem Atmega32 will ich folgendes 32bit Schieberegister ansteuern...
http://www.allegromicro.com/en/Produ.../6833/6833.pdf

Ich benutze die SPI des Atmegas und habe folgende Pinbelegung:

Data In vom a6833 geht an MOSI, also PB5,
CLLock geht an SCK, also PB7,
STrobe geht an SS, also PB4,

OE geht dauerhaft an 5V.

Hier ist mein Code:
Code:
#include <avr/io.h>
#include <stdint.h>

#ifndef F_CPU
#    define F_CPU 16000000L
#endif


#define SPIPORT PORTB
#define SPIDDR DDRB
#define CSPORT SPIPORT
#define CSDDR DDRB
#define MISO PB6
#define MOSI PB5
#define SCK PB7
#define CS PB4

#define SETSTROBE() (CSPORT) |= (1<<CS)
#define CLRSTROBE() (CSPORT) &= ~(1<<CS)

void spi_init(void)
{
    SPIDDR = (1<<MOSI)|(1<<SCK);
    CSDDR = (1<<CS);
    SPIPORT = (1<<MISO);

    /*
     * SPI als Master
     * MSB zuerst 
     * SCK Ruhepegel ist im Datenblatt LOW!
    SPCR = (1 << SPE) | (1 << MSTR);

}

void spi_put_byte( uint8_t data)
{
    SPDR = data;
    while(!(SPCR & (1<<SPIF)))
        ;
}

void set_a6833(uint32_t data)
{
    int8_t i;
    uint8_t tmp;
    for(i=3;i >= 0; i--){
        tmp = (data >> (8*i));
        spi_put_byte(tmp);
    }
    SETSTROBE();

  	asm volatile ("nop");
    CLRSTROBE();
}

int main(void)
{
    spi_init();
    set_a6833(0x5500ff0fL);
	for(;;)
        ;
	return 0;
}
leider leuchten nich die angeschlossenen Led's die sollen, nur immer andere, ohne erkennbares Muster
Kann mal jemand rübergucken und mir evtl.nen Tip geben?

MFG

Kons