Hallo SlyD, nun geht es tatsächlich!
Wie man hier unten im Code sieht, habe ich die Initialisierung des ACS, wie von dir vorgeschlagen noch 2x vor den "showScreenLCD" Befehl gepappt, jeweils mit einer Pause danach. 1x reichte NICHT! Mit 2x zusätzlich funktioniert es, aber es sieht echt seltsam aus.
Das muß doch auch formschöner hinzukriegen sein!?
Ich hab verschieden Versionen versucht, mit und ohne Pausen, verschiedene Pausenlängen usw. Bisher klappt es bei mir sicher nur so, wie hier zu sehen.
Danke nochmals für den Hinweis.
Vielleicht hat trotzdem jemand einen Tip, wie man das Problem generell löst. Dirk hatte ja oben bestätigt, das es zumindest auch beim Beispiel Move9 auftritt. Da müsste aber das Programm anders geändert werden (ACS ist ja nicht drin).
Eine allgemeingültige "formschöne" Lösung wäre besser als dieses "Workaround", finde ich.
Gruß Uwe
Code:
setLEDs(0b1111);
// ---eingefügt wegen Startup-Problem I2C---
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
// Enable Watchdog for Interrupt requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
// Enable timed watchdog requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
mSleep(200);
// Setup ACS power:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
// Enable Watchdog for Interrupt requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
// Enable timed watchdog requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
mSleep(200)
// ---Ende Einfügung wegen Startup-Problem I2C---
showScreenLCD("################", "################");
mSleep(500);
showScreenLCD("I2C-Master", "Behaviours");
mSleep(1000);
setLEDs(0b0000);
// ---------------------------------------
// Setup ACS power:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
// Enable Watchdog for Interrupt requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
// Enable timed watchdog requests:
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
Lesezeichen