13.01.2020, 07:57
Ich habe es gestern gelöst für mich.
https://bitbucket.org/numberfive/sdl2gui...nd_IO_I2C/
Ich habe mich am MCP Orientiert das hat den Vorteil das man mit den Commandline Tools für I²C Testen kann.
Eine INT Pin / Leitung habe ich auch Programmiert. Das muss ich aber noch Testen. Das heiß Sollte sich ein AD Wert ändern (Interval) wird der PIN High oder ein Digi PIN sich ändern.
Die digiPins werden im Loop Abgefragt die AD's nur im Intervall. Ok den kann man auf 0 Stellen aber dann sollte man keine Debug ausgaben mehr machen wollen (Serial) und I²C hängt da auch genauen Grund weiß ich nicht aber ich glaube das ist eh nicht wirklich Interessant. So nahe dran zu sein.
Was ich jetzt noch überlege ist ob ich noch eine Funktion einbaue das die AD's nur Melden wenn ein wert Änderung um X stand findet und nicht jeden den zum Beispiel der Licht Sensor wacklt doch sehr.
Mal sehen
https://bitbucket.org/numberfive/sdl2gui...nd_IO_I2C/
Ich habe mich am MCP Orientiert das hat den Vorteil das man mit den Commandline Tools für I²C Testen kann.
Code:
i2cget -y 1 0x21 0x00 w -> AD0 abfragen
i2cget -y 1 0x21 0x01 w -> AD1 abfragen
i2cget -y 1 0x21 0x02 w -> AD2 abfragen
i2cget -y 1 0x21 0x03 w -> AD3 abfragen
i2cget -y 1 0x21 0x04 w -> AD4 abfragen
i2cget -y 1 0x21 0x05 w -> AD5 abfragen
i2cget -y 1 0x21 0x06 w -> PWM 1 Abfragen
i2cget -y 1 0x21 0x07 w -> PWM 2 Abfragen
i2cget -y 1 0x21 0x08 w -> DIGI Pins abfragen
i2cset -y 1 0x21 0x10 0x10 -> Interval einstellen Value * 100 Ms
i2cset -y 1 0x21 0x11 0x10 -> PWM 1 einstellen
i2cset -y 1 0x21 0x12 0x10 -> PWM 2 einstellen
i2cset -y 1 0x21 0x13 0x03 -> AD's enable / disable 0x03 => 0 und 1 Enabled
i2cset -y 1 0x21 0x14 0x03 -> DIGI's enable / disable 0x03 => 0 und 1 Enabled
i2cset -y 1 0x21 0x15 0x00 -> DIGI Pins auf Input umschalten 0x00 alle da wo ne 1 ist Input
i2cset -y 1 0x21 0xF0 -> Konfiguration im EEPROM speichern
Eine INT Pin / Leitung habe ich auch Programmiert. Das muss ich aber noch Testen. Das heiß Sollte sich ein AD Wert ändern (Interval) wird der PIN High oder ein Digi PIN sich ändern.
Die digiPins werden im Loop Abgefragt die AD's nur im Intervall. Ok den kann man auf 0 Stellen aber dann sollte man keine Debug ausgaben mehr machen wollen (Serial) und I²C hängt da auch genauen Grund weiß ich nicht aber ich glaube das ist eh nicht wirklich Interessant. So nahe dran zu sein.
Was ich jetzt noch überlege ist ob ich noch eine Funktion einbaue das die AD's nur Melden wenn ein wert Änderung um X stand findet und nicht jeden den zum Beispiel der Licht Sensor wacklt doch sehr.
Mal sehen