[2008/12/02] Da im Netz nicht viel auf Anhieb zu finden ist hier ein kleiner Code zur Ansteuerung eines – sollte recht portabel sein:
#include <avr/io.h> #define SHIFT_PORT PORTB #define SHIFT_PORT_DDR DDRB #define SHIFT_DATA PINB0 #define SHIFT_SCK PINB1 #define SHIFT_OUT PINB2 void shift_out(int); int main(void) { SHIFT_PORT_DDR |= (1<<SHIFT_DATA) | (1<<SHIFT_SCK) | (1<<SHIFT_OUT); shift_out( 0xAA ); while (1) { } } void shift_out (int num) { for(int i=1; i<=128; i*=2) { if(num & i) { SHIFT_PORT |= (1 << SHIFT_DATA); } else { SHIFT_PORT &= ~(1 << SHIFT_DATA); } //clock SHIFT_PORT |= (1 << SHIFT_SCK); SHIFT_PORT &= ~(1 << SHIFT_SCK); } //move to the pins SHIFT_PORT |= (1 << SHIFT_OUT); SHIFT_PORT &= ~(1 << SHIFT_OUT); }