- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 25

Thema: RP6Control M32: Projekt I2C-Slave

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hallo -schumi-,

    benutzt du für den Raspberry Pi auch die Lib "RP6M256_M32_I2CMasterLib" oder schreibst du direkt per I2C auf den Slave?
    Wenn du dir in der Lib die Funktion "void writeCharM32LCD(uint8_t ch)" ansiehst, dann wartet die am Ende mit "waitForM32TransmitComplete()" zumindest so lange, bis die I2C-Übertragung des Zeichens abgeschlossen ist. Bei mir war das ausreichend, um jedes Zeichen auf das LCD zu bekommen.
    Gruß
    Dirk

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    03.08.2012
    Beiträge
    5
    Servus,

    ich versuche gerade die Keys der M32 (als Slave) mit der M256 (als Master) auszulesen.

    Mittlerweile funktioniert es, dass ich den pressedkey auslesen kann. Ich würde aber lieber den releasedkey verwenden. Hierbei bekomme ich aber bei allen 5 Tastern immer nur eine '0' zurückgeliefert.

    Hoffe, ihr könnt mir helfen.



    if(getStopwatch4() > 250)
    {
    getAllRegisters();


    if(interrupt_M32status.keypressed)
    {
    writeInteger_WIFI(pressedKeyNumber, DEC);
    //writeInteger_WIFI(releasedKeyNumber, DEC);
    writeChar_WIFI('\n');

    }

    //if(interrupt_M32status.keychange)
    // {
    //// writeInteger_WIFI(pressedKeyNumber, DEC);
    //writeInteger_WIFI(releasedKeyNumber, DEC);
    // writeChar_WIFI('\n');

    // }

    setStopwatch4(0);
    }

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi matze1,
    solange eine Taste gedrückt wird, enthält pressedKeyNumber die Nummer der Taste und releasedKeyNumber 0.
    Solange keine Taste gedrückt wird, enthält pressedKeyNumber 0 und releasedKeyNumber die Nummer der zuletzt gedrückten Taste.

    Eine Abfrageschleife kann z.B. so aussehen:
    Code:
    uint8_t last_releasedKeyNumber;
    
    /**
     * M32 key state changed
     */
    void keyStateChanged(void)
    {
    	writeString_P_WIFI("\n\n===> key state changed!!!\n"); 
    	writeString_P_WIFI("ADC_KEYPAD value: ");
    	writeInteger_WIFI(adcKeypad, DEC);
    	writeChar_WIFI('\n');
    	writeString_P_WIFI("Key is pressed:   ");
    	if(interrupt_M32status.keypressed) writeString_P_WIFI("Yes\n");
    	else writeString_P_WIFI("No\n");
    	writeString_P_WIFI("[Last rel. key number: ");
    	writeInteger_WIFI(last_releasedKeyNumber, DEC);
    	writeString_P_WIFI("]\nReleased key number:   ");
    	writeInteger_WIFI(releasedKeyNumber, DEC);
    	writeChar_WIFI('\n');
    	last_releasedKeyNumber = releasedKeyNumber;
    	writeString_P_WIFI("Pressed key number:    ");
    	writeInteger_WIFI(pressedKeyNumber, DEC);
    	writeChar_WIFI('\n');
    	writeChar_WIFI('\n');
    }
    
    	uint8_t regM32Buf[4];
    
    	while(true) 
    	{
    		task_checkPCINT15();	// RP6 M32 main task
    		if(interrupt_M32status.keyChange)
    		{
    			I2CTWI_readRegisters(I2C_RP6_M32_ADR, I2C_REG_ADC_KEYPAD_L, regM32Buf, 4);
    			adcKeypad = regM32Buf[0] + (regM32Buf[1]<<8);
    			releasedKeyNumber = regM32Buf[2];
    			pressedKeyNumber = regM32Buf[3];
    			keyStateChanged();
    		}
    		task_I2CTWI();
    	}
    Gruß
    Dirk

Ähnliche Themen

  1. RP6Control M32: Library für 8 Servos
    Von Dirk im Forum Robby RP6
    Antworten: 84
    Letzter Beitrag: 12.02.2013, 22:17
  2. Slave Transmitter und Slave Receiver Mode
    Von masasibe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 26.02.2011, 20:55
  3. RP6Control M32: Tonfrequenzen
    Von Dirk im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 10.10.2009, 19:47
  4. Slave-Master-Slave übertragung geht nicht
    Von Dämmi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 26.11.2008, 01:08
  5. Antworten: 0
    Letzter Beitrag: 26.08.2007, 16:03

Berechtigungen

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

12V Akku bauen