Soo, ich habe jetzt ein wenig mehr gefunden, doch funktioniert es noch nicht so recht
Code:
#include "nibobee.h"

#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

#include <util/delay.h>

#define DDR_SCK 	DDRA			/*!< DDR fuer Maus-SCLK */
#define DDR_SDA 	DDRC			/*!< DDR fuer Maus-SDA  */

#define PORT_SCK	PORTA			/*!< PORT fuer Maus-SCK  */
#define PORT_SDA	PORTC			/*!< PORT fuer Maus-SDA  */
#define PIN_SDA		PINC			/*!< PIN fuer Maus-SDA  */

#define SCK_PIN		(1<<PA3)		/*!< PIN nummer fuer Maus-SCK  */
#define SDA_PIN		(1<<PC3)		/*!< PIN nummer fuer Maus-SDA  */


/*!
 * Uebertraegt ein Byte an den Sensor
 * @param data das Byte
 */
void pan_writeByte(unsigned char data){
	signed char i;
	
	DDR_SDA|= SDA_PIN; 		// SDA auf Output
	
	for (i=7; i>=0; i--){
	
		PORT_SCK &= ~SCK_PIN;		//SCK auf Low, daten vorbereiten
		
		if(data&(1<<i)){			//BIT rausschieben
			PORT_SDA|=SDA_PIN;
		}else{
			PORT_SDA&=~SDA_PIN;		
		}
		
		PORT_SCK |= SCK_PIN;		// SCK =1 Sensor uebernimmt auf steigender Flanke
		
		_delay_us(1);				//sensor Zeit lassen um Bit zu holen
	}

	DDR_SDA &=~ SDA_PIN;			//HI-Z state
	PORT_SDA &=~ SDA_PIN;
		
}

/*!
 * Liest ein Byte vom Sensor
 * @return das Byte
 */
unsigned char pan_readByte(void){
signed char i;
unsigned char data=0;
	
	_delay_us(3);					//Sensor Zeit lassen um die Daten aus dem Register zu holen

	for (i=7; i>-1; i--){
		PORT_SCK &= ~SCK_PIN;		// SCK =0 Sensor bereitet Daten auf fallender Flanke vor !
			
		_delay_us(1);				//Sensor kurz zeit lassen
		
		
		PORT_SCK |= SCK_PIN;		// SCK =1 Daten lesen  auf steigender Flanke		
		
		if(PIN_SDA&SDA_PIN){ 		//BIT einlesen
			data |= (1<<i);			
		}else{
			data &=~ (1<<i);			
		}			

	}
	return data;
}

/*!
 * Uebertraegt ein write-Kommando an den Sensor
 * @param adr Adresse
 * @param data zu schreibendes byte
 */
void pan_write(unsigned char adr, unsigned char data){
	adr|=(1<<7);
	pan_writeByte(adr);  //rl MSB muss 1 sein Datenblatt S.12 Write Operation
	pan_writeByte(data);
	//_delay_ms(4);
}



/*!
 * Schickt ein Lesekommando an den Sensor
 * und liest ein Byte zurueck
 * @param adr die Adresse
 * @return der registerwert
 */
unsigned char pan_read(unsigned char adr){

	pan_writeByte(adr);
	return pan_readByte();
}


/*! 
 * Initialisiere PAN3101
 
 !! Muss unbedingt ganz am ANFANG von main stehen, sonst gibts FEHLER !!
 
 */ 
void pan_init(void){

	DDR_SCK  |= SCK_PIN; 	// SCK auf Output
	DDR_SDA |= SDA_PIN;		//SDA auf output

	PORT_SCK |= SCK_PIN;	// SCK auf high	
	PORT_SDA|= SDA_PIN;		//SDA auf high


//Reset PAN3101
	pan_write(0x0a,0x80); 
// kein Sleep modus
	pan_write(0x0a,0x01);	
}


int main(void){
unsigned char ino;
signed char x,y;
signed short posx=0,posy=0;

pan_init();
//Platz für andere Initialiesierungen
while(1){

ino=pan_read(0x02);

if(ino&(1<<7)){				//wenn 7tes bit gesetzt ist wurde die Maus bewegt => bewegungsdaten abfragen
	x=pan_read(0x03);
	posx=posx+x;

	y=pan_read(0x04);
	posy=posy+y;
	
	SerPrint("X-Pos: ");
	PrintInt(x);
	SerPrint(" | Y-Pos: ");
	PrintInt(y);
	SerPrint("\n\r");
}

_delay_ms(250);
_delay_ms(250);

}

return 0;
}
Ich habe so weit ich es herausfinden konnte alle Register Geändert:
0x0a Configuration_bits
0x02 Motion
0x03 Delta_X
0x04 Delta_Y

Auch die beiden Sensoren in der neuen Maus habe ich gerennt, wie es im Wiki steht. Die Spannung hab ich zwar nicht direkt am Sensor dran gelötet, dafür aber an die USB-Buchse.