- Labornetzteil AliExpress         
Seite 4 von 9 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 83

Thema: Nunchuk + Bascom + Atmega8 . Brauche hilfe :-)

  1. #31
    Benutzer Stammmitglied
    Registriert seit
    05.05.2008
    Beiträge
    51
    Anzeige

    Praxistest und DIY Projekte
    Wenn ich den Atmega8 (5 Volt) mit den Nunchuck (3.3 Volt ) verbinden will könnte ich das doch wie hier im Bild. An den Wiederständen steht 3k3 oder 1k8 .
    Also 3k und 1k ist klar doch was ist diese 3 und 8 ???
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken electronic-atmega16-mmc-schematic_small.png  

  2. #32
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    Hi,

    3k3 bedeutet 3,3k und 1k8 bedeutet 1,8k.

    mfg Kay

  3. #33
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Wenn man weiß wie es funktioniert klappt das auch mit der orginalen RP6-TWI-Library in C:
    Code:
    // WII-Nunchuk am RP6 erste Versuche mit TWI in C                       8.8.2008  mic
    
    #include "rblib.h"
    #include "rblib.c"
    #include "rblcdlib.c"
    #include "RP6I2CmasterTWI.h"
    #include "RP6I2CmasterTWI.c"
    
    uint8_t i=0;                  					// Hilfsvariable
    uint8_t nunchuk_data[6];                     // Nunchuk-Daten
    
    void lcd_start(void)
    {
       lcd_init();                   				// lcd initialisieren
    	lcd_cls();                    				// lcd Inhalt löschen
    	lcd_locate(2,0);
    	lcd_writeString("RP6 ROBOT SYSTEM");
    	lcd_locate(1,1);
       lcd_writeString("WII-Nunchuk am RP6");
    }
    void lcd_ausgabe(void)
    {
    	lcd_locate(2,2);
       for(i=0; i<5; i++)
    	{
    		lcd_writeInteger((nunchuk_data[i] ^ 0x17) + 0x17, 16);
    		lcd_writeString(" ");
    	}
    	lcd_writeInteger(((nunchuk_data[i] ^ 0x17) + 0x17) & 3, 16);
    
    	lcd_locate(2,3);
    	lcd_writeString("Tasten: ");
    	lcd_writeInteger(128+lcd_getkeys(), 2);
    }
    
    int main(void)
    {
    	rblib_init();                 				// rblib initialisieren
    
    	I2CTWI_initMaster(400);           			// TWI mit 400kHz initialisieren
    	I2CTWI_transmit2Bytes(0xa4, 0x40, 0); 		// Nunchuk Speicheradresse setzen
    
    	lcd_start();                              // LCD-Startbildschirm darstellen
    	while(1)
    	{
    		I2CTWI_transmitByte(0xa4, 0); 					// Datenlesemodus starten
          I2CTWI_readBytes(0xa5, &nunchuk_data[0], 6); // sechs Bytes lesen
    
          for(i=0; i<5; i++)
    		{
    			writeInteger((nunchuk_data[i] ^ 0x17) + 0x17, 16);
    			writeString(" ");
    		}
    		writeInteger(((nunchuk_data[i] ^ 0x17) + 0x17) & 3, 16);
    		writeString("\n");
    		
    		lcd_ausgabe();
    		delay_ms(50);
    	}
    	return(0);
    }
    Die Ausgabe dazu sind die sechs Daten-Bytes des Nunchuk:
    Code:
    Terminal cleared!
    
    7c 81 76 84 dc 3
    7c 81 7a 8c df 3
    7c 81 82 8e dc 3
    7c 81 83 8a dc 3
    7c 81 7d 8c df 3
    7c 81 6f 8c dd 3
    7b 81 4b 7f c2 3
    7b 81 42 79 a7 3
    7b 81 3f 79 ab 3
    7b 81 4b 82 d3 3
    7b 81 88 8d db 3
    7c 81 af 7d b1 3
    7c 81 ab 6e 91 3
    7c 80 a0 7b b5 3
    7b 80 8b a7 c0 3
    7b 80 91 bc a8 3
    7b 80 85 c1 a8 3
    7b 80 86 b2 cb 3
    7b 80 81 7e de 3
    7b 80 7b 58 aa 3
    7b 80 76 57 bf 3
    7b 80 8e 88 dc 3
    7b 81 93 8f d9 3
    78 81 89 8f d6 3
    4f 7f 87 91 db 3
    1b 7d 85 90 dd 3
    1b 7e 86 90 dd 3
    1b 7e 82 90 dc 3
    1b 7e 82 90 dc 3
    7a 81 83 91 dd 3
    7b 81 84 8f dc 3
    80 80 85 8f db 3
    a5 7d 86 8f db 3
    df 80 86 8f dc 3
    df 7f 85 8f dc 3
    df 7f 88 8f db 3
    df 7f 88 90 db 3
    79 81 87 8e db 3
    7a 80 86 8e db 3
    78 a0 86 8f dc 3
    71 d5 84 8e db 3
    71 df 87 8d dc 3
    71 df 85 8d dd 3
    71 df 86 8e dd 3
    7a 81 85 8d dd 3
    7a 81 85 8c dd 3
    80 79 85 8c db 3
    82 3d 84 8c dc 3
    83 22 85 8c dc 3
    82 21 85 8c dc 3
    81 20 84 8c dc 3
    80 1f 86 8c dc 3
    7a 81 84 8c dc 3
    7a 81 86 8d dd 3
    7a 81 81 8b db 3
    7a 81 7e 8b db 3
    7a 81 7d 87 db 3
    7a 81 7e 8a df 3
    7a 81 81 8a dc 3
    
    [RP6BOOT]
    
    [READY]
    Echt einfach.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #34
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    Hallo zusammen

    Anstatt einen neuen Tread anzufangen schreibe ich hier weiter.

    Erstmal ein grosses dankeschön an Radbruch. Dank deiner Entwicklungsarbeit funktioniert das auslesen des Nunchuk einwandfrei!

    Nun zu meinem Problem:
    Ich habe das Nunchuk an den I2C Bus meines Hexas gehängt. Wenn ich ein kleines Programm schreibe welches nur das Nunchuk ausliest funktioniert es einwandfrei (5 weitere I2C Teilnehmer hängen auch am Bus werden aber nicht angesprochen).
    Wenn ich jetzt aber das Nunchuk Programm in meinen kompletten Hexacode einbaue stürzt der Bus ab und mein Mastercontroller bleibt einfach stehen und macht nix mehr.
    Hat jemand das Nunchuk schon einmal zusammen mit anderen Busteilnehmern getestet? Das Nunchuk hat eigene 1k8 Pullup Widerstände für den I2C Bus eingebaut, ich habe diese mal ausgelötet da ich am Master ja schon Widerstände habe, dies hat aber nichts gebracht.

    Hat jemand eine Idee warum der Bus abstürzt? hat schonmal jemand das Nunchuk zusammen mit anderen I2C Teilnehmern verwendet?

    gruss Bluesmash

  5. #35
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Bluesmash,

    direkt probiert hatte ich das zwar noch nicht, hatte das aber bei meiner Anpass-Schaltung berücksichtigt. Das sollte aber funktionieren, die Schaltung stammt aus einer Philips Application note.

    Bild hier  

    Es müssen nur alle 5V I2C Bus Teilnehmer auf der rechten Seite angeschlossen werden, und alle 3V I2C Teilnehmer, wie der Nunchuk, auf der linken Seite. Wenn bei dir schon I2C Bus Pullup Widerstände am Controller bzw. am Nunchuk vorhanden sind, kannst du die Widerstände aus der Schaltung natürlich weglassen, dann brauchst du nur die beiden FETs. Den BSN10A gibt es z.B bei Conrad. Du brauchst aber auf jeden Fall I2C Pullups auf beiden Seiten (5V u. 3V) sonst funktioniert die Schaltung nicht.

    Hier nochmal der Link zum cc2 Thread

  6. #36
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    Danke für den Schaltplan.
    Ich habe zum testen das Nunchuk einfach an 5V gehängt, funktioniert ja auch aber wenn zusätzlich die anderen I2C Teilnehmer abgefragt werden bleibt der Mastercontroller einfach stehen und macht nix mehr....
    Ich habe das Gefühl dass, das nunchuk bei der kommunikation mit anderen I2C Teilnehmern "durcheinander" kommt und den Bus blockiert und der Master bleibt dann auch stehen da die Kommunikation nicht weitergeht....

    gruss Bluesmash

  7. #37
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Bluesmash,

    liegt vielleicht ein I2C Adressen Konflikt vor?

    Ich probier das heute Abend mal aus. Den Aufbau habe ich hier noch rumliegen, zudem noch jede Menge I2C Peripherie, die ich zusätzlich dranhängen kann.

  8. #38
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    nö das kann nicht sein, das nunchuk hat ja etwas mit 160 und meine Module haben die Adressen 2,4,6,10 und 12 (sind alles eigene Module mit M8/M168/M32)

    Das währe Super wenn du dies mal testen könntest.

    gruss Bluesmash

  9. #39
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Bluesmash,

    hier kann ich keinen Fehler feststellen. Ich kann einen PCF8574, einen DS1307 und ein 24C256 EEPROM zusammen mit dem Wii Nunchuk an einem I2C Bus ohne Fehler betreiben. Egal ob der Nunchuk mit 5V betrieben wird oder mit 3,3V.

  10. #40
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    vielen dank für deine mühe! ich bin jetzt auch wieder seit 2h am testen. momentan sieht es so aus dass,das nunchuk nur eingesteckt sein muss damit der bus abstürzt... es muss nicht einmal abgefragt werden... ich vermute jetzt langsam die 5V stromversorgung... werde mal meinen oskar rufen...

    gruss Buesmash

Seite 4 von 9 ErsteErste ... 23456 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test