- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 7 von 7

Thema: ATmega88 mit Nunchuk WII - Rückgabewert immer 0xFF

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    ATmega88 mit Nunchuk WII - Rückgabewert immer 0xFF

    Hallo zusammen,

    Ich habe jetzt schon ein paar nette Projekte mit nem Nunchuk +
    Controller gesehen und hab mich gestern mal dran gemacht meinen
    umzubauen.

    Hardware: STK500 + ATMega88 + JTAGICEmkII + 8MHz Quarz
    Betriebsspannung: 3,3V
    Verbindungen: SDA(PC4) an Grüne Leitung Nunchuk mit 2,2kOhm Pullup
    SCL(PC5) an Gelbe Leitung Nunchuk mit 2,2kOhm Pullup

    Software in Anhang.

    Prinzipiell scheint die TWI Kommunikation zu funktionieren. Jedoch
    bekomm ich bei allen 6 Bytes immer nur 0xff als Wert zurück. Hab gelesen
    dass dieses Problem schon mehrere Leute hatten, jedoch ne genaue Ursache
    konnte keiner nennen.


    Hat einer ne Idee was der Fehler sein könnte?


    Gruß,
    Mink

    Code:
    //*****************************************************************************
    //* Project: ATMega88 + WII Nunchuk                                           *
    //* Version: beta                                                             *
    //* File: device.c                                                            *
    //* Target MCU: ATMega88                                                      *
    //* Compiler: GCC                                                             *
    //* Simulator: AVRStudio 4.17                                                 *
    //* Emulator: JTAG ICE MKII                                                   *
    //* Author: Minkfeld                                                          *
    //* Date: 03.12.09                                                            *                        
    //*****************************************************************************
    
    #include <stdio.h>
    #include <avr/interrupt.h>
    
    #include "General.h"
    #include "Delay.h"
    #include "TWI_Master.h"
    
    unsigned int Data[8];
    unsigned int test_buffer[100];
    unsigned int buffer_count;
    
    int main(void)
    {
    	uint8_t	i;
    
    	uint8_t	SlaveAddress = 0x52;
    
    	DDRD = 0x08;
    
    	//init TWI Master interface with bitrate of 100000Hz
    	if (!TWIM_Init (100000))
    	{
    		while (1);
    		{
    			;
    		}
    	}
    
    	//do a handshake with the nunchuk
    	(TWIM_Start (SlaveAddress, TWIM_WRITE));
    	TWIM_Write (0x40);
    	TWIM_Write (0x00);
    	Delay_ms (200);
    	TWIM_Stop ();
    
    	//main loop
    	while (1)
    	{
    		
    		//read 6 bytes from nunchuck
    		if (!TWIM_Start ((SlaveAddress), TWIM_READ))
    		{
    			TWIM_Stop ();
    	    }
    
    		else
    		{
    			for (i=0;i<5;i++)
    			{
    	        	Data[i] = TWIM_ReadAck();
    				buffer_count++;
    				test_buffer[buffer_count] = Data[i];
    			}
    
            	Data[5] = TWIM_ReadNack();
    			buffer_count++;
    			test_buffer[buffer_count] = Data[5];
    			TOOGLE_BIT(PORTD,3);
    			TWIM_Stop ();
    		}
    
    
    
       		//write byte to request next data from the nunchuck
    		if (!TWIM_Start (SlaveAddress, TWIM_WRITE))
    		{
    			TWIM_Stop ();
    	    }
    
    		else
    		{
    	        TWIM_Write (0x00);
    			Delay_ms (200);
    			TWIM_Stop ();
    		}
    	}
    }
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test