worked on SPI, fixed some bugs
adjusted LCD code added code for INA3221 worked on UI
This commit is contained in:
16
io/SoftI2C.h
16
io/SoftI2C.h
@@ -24,8 +24,7 @@ template <int PIN_SDA, int PIN_SCL, bool fast> class SoftI2C {
|
||||
inline void sclLo() {MyGPIO::clear(PIN_SCL);}
|
||||
|
||||
inline void waitLong() {
|
||||
for (uint8_t i = 0; i < 240; ++i) {
|
||||
__asm__ __volatile__("nop");
|
||||
for (uint16_t i = 0; i < 1024; ++i) {
|
||||
__asm__ __volatile__("nop");
|
||||
}
|
||||
}
|
||||
@@ -33,7 +32,6 @@ template <int PIN_SDA, int PIN_SCL, bool fast> class SoftI2C {
|
||||
inline void waitShort() {
|
||||
for (uint8_t i = 0; i < 240; ++i) {
|
||||
__asm__ __volatile__("nop");
|
||||
__asm__ __volatile__("nop");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,14 +154,14 @@ public:
|
||||
|
||||
// select register(s) to read
|
||||
ok = startWrite(addr);
|
||||
if (!ok) {debugMod(NAME, "failed start write1\n"); return false;}
|
||||
if (!ok) {debugMod(NAME, "failed start write(1)"); return false;}
|
||||
ok = writeByteAndCheck(reg);
|
||||
if (!ok) {debugMod(NAME, "failed select register\n"); return false;}
|
||||
if (!ok) {debugMod(NAME, "failed select register"); return false;}
|
||||
stop();
|
||||
|
||||
// read register(s)
|
||||
ok = startRead(addr);
|
||||
if (!ok) {debugMod(NAME, "failed start write2\n"); return false;}
|
||||
if (!ok) {debugMod(NAME, "failed start write(2)"); return false;}
|
||||
readBytes(dst, len);
|
||||
stop();
|
||||
|
||||
@@ -178,11 +176,11 @@ public:
|
||||
|
||||
// address the slave in write mode and select the first register to read
|
||||
ok = startWrite(addr);
|
||||
if (!ok) {debugMod(NAME, "failed start write\n"); return false;}
|
||||
if (!ok) {debugMod(NAME, "failed start write"); return false;}
|
||||
ok = writeByteAndCheck(reg);
|
||||
if (!ok) {debugMod1(NAME, "failed to select register %d\n", addr); return false;}
|
||||
if (!ok) {debugMod1(NAME, "failed to select register %d", addr); return false;}
|
||||
ok = writeBytesAndCheck(src, len);
|
||||
if (!ok) {debugMod(NAME, "failed to write register contents \n"); return false;}
|
||||
if (!ok) {debugMod(NAME, "failed to write register contents"); return false;}
|
||||
|
||||
// done
|
||||
stop();
|
||||
|
||||
Reference in New Issue
Block a user