@@ -64,7 +64,7 @@ uint8_t SX1509::init(void)
64
64
65
65
// Communication test. We'll read from two registers with different
66
66
// default values to verify communication.
67
- unsigned int testRegisters = 0 ;
67
+ uint16_t testRegisters = 0 ;
68
68
testRegisters = readWord (REG_INTERRUPT_MASK_A); // This should return 0xFF00
69
69
70
70
// Then read a byte that should be 0x00
@@ -377,7 +377,7 @@ void SX1509::setupBlink(uint8_t pin, uint8_t tOn, uint8_t tOff, uint8_t onIntens
377
377
writeByte (REG_T_FALL[pin], tFall);
378
378
}
379
379
380
- void SX1509::keypad (uint8_t rows, uint8_t columns, unsigned int sleepTime, uint8_t scanTime, uint8_t debounceTime)
380
+ void SX1509::keypad (uint8_t rows, uint8_t columns, uint16_t sleepTime, uint8_t scanTime, uint8_t debounceTime)
381
381
{
382
382
uint16_t tempWord;
383
383
uint8_t tempByte;
@@ -388,21 +388,21 @@ void SX1509::keypad(uint8_t rows, uint8_t columns, unsigned int sleepTime, uint8
388
388
389
389
// Set regDir 0:7 outputs, 8:15 inputs:
390
390
tempWord = readWord (REG_DIR_B);
391
- for (int i = 0 ; i < rows; i++)
391
+ for (uint8_t i = 0 ; i < rows; i++)
392
392
tempWord &= ~(1 << i);
393
- for (int i = 8 ; i < (columns * 2 ); i++)
393
+ for (uint8_t i = 8 ; i < (columns * 2 ); i++)
394
394
tempWord |= (1 << i);
395
395
writeWord (REG_DIR_B, tempWord);
396
396
397
397
// Set regOpenDrain on 0:7:
398
398
tempByte = readByte (REG_OPEN_DRAIN_A);
399
- for (int i = 0 ; i < rows; i++)
399
+ for (uint8_t i = 0 ; i < rows; i++)
400
400
tempByte |= (1 << i);
401
401
writeByte (REG_OPEN_DRAIN_A, tempByte);
402
402
403
403
// Set regPullUp on 8:15:
404
404
tempByte = readByte (REG_PULL_UP_B);
405
- for (int i = 0 ; i < columns; i++)
405
+ for (uint8_t i = 0 ; i < columns; i++)
406
406
tempByte |= (1 << i);
407
407
writeByte (REG_PULL_UP_B, tempByte);
408
408
@@ -432,7 +432,7 @@ void SX1509::keypad(uint8_t rows, uint8_t columns, unsigned int sleepTime, uint8
432
432
{
433
433
for (uint8_t i = 7 ; i > 0 ; i--)
434
434
{
435
- if (sleepTime & ((unsigned int )1 << (i + 6 )))
435
+ if (sleepTime & ((uint16_t )1 << (i + 6 )))
436
436
{
437
437
sleepTimeBits = i;
438
438
break ;
@@ -456,33 +456,33 @@ void SX1509::keypad(uint8_t rows, uint8_t columns, unsigned int sleepTime, uint8
456
456
writeByte (REG_KEY_CONFIG_2, (rows << 3 ) | columns);
457
457
}
458
458
459
- unsigned int SX1509::readKeypad ()
459
+ uint16_t SX1509::readKeypad ()
460
460
{
461
461
return readKeyData ();
462
462
}
463
463
464
- unsigned int SX1509::readKeyData ()
464
+ uint16_t SX1509::readKeyData ()
465
465
{
466
466
return (0xFFFF ^ readWord (REG_KEY_DATA_1));
467
467
}
468
468
469
- uint8_t SX1509::getRow (unsigned int keyData)
469
+ uint8_t SX1509::getRow (uint16_t keyData)
470
470
{
471
471
uint8_t rowData = uint8_t (keyData & 0x00FF );
472
472
473
- for (int i = 0 ; i < 8 ; i++)
473
+ for (uint8_t i = 0 ; i < 8 ; i++)
474
474
{
475
475
if (rowData & (1 << i))
476
476
return i;
477
477
}
478
478
return 0 ;
479
479
}
480
480
481
- uint8_t SX1509::getCol (unsigned int keyData)
481
+ uint8_t SX1509::getCol (uint16_t keyData)
482
482
{
483
483
uint8_t colData = uint8_t ((keyData & 0xFF00 ) >> 8 );
484
484
485
- for (int i = 0 ; i < 8 ; i++)
485
+ for (uint8_t i = 0 ; i < 8 ; i++)
486
486
{
487
487
if (colData & (1 << i))
488
488
return i;
@@ -544,7 +544,7 @@ void SX1509::debounceTime(uint8_t time)
544
544
uint8_t configValue = 0 ;
545
545
// We'll check for the highest set bit position,
546
546
// and use that for debounceConfig
547
- for (int i = 7 ; i >= 0 ; i--)
547
+ for (uint8_t i = 7 ; i >= 0 ; i--)
548
548
{
549
549
if (time & (1 << i))
550
550
{
@@ -559,7 +559,7 @@ void SX1509::debounceTime(uint8_t time)
559
559
560
560
void SX1509::debounceEnable (uint8_t pin)
561
561
{
562
- unsigned int debounceEnable = readWord (REG_DEBOUNCE_ENABLE_B);
562
+ uint16_t debounceEnable = readWord (REG_DEBOUNCE_ENABLE_B);
563
563
debounceEnable |= (1 << pin);
564
564
writeWord (REG_DEBOUNCE_ENABLE_B, debounceEnable);
565
565
}
@@ -575,9 +575,9 @@ void SX1509::debounceKeypad(uint8_t time, uint8_t numRows, uint8_t numCols)
575
575
debounceTime (time );
576
576
577
577
// Set up debounce pins:
578
- for (int i = 0 ; i < numRows; i++)
578
+ for (uint8_t i = 0 ; i < numRows; i++)
579
579
debouncePin (i);
580
- for (int i = 0 ; i < (8 + numCols); i++)
580
+ for (uint8_t i = 0 ; i < (8 + numCols); i++)
581
581
debouncePin (i);
582
582
}
583
583
@@ -623,15 +623,15 @@ void SX1509::enableInterrupt(uint8_t pin, uint8_t riseFall)
623
623
writeWord (senseRegister, tempWord);
624
624
}
625
625
626
- unsigned int SX1509::interruptSource (bool clear /* =true*/ )
626
+ uint16_t SX1509::interruptSource (bool clear /* =true*/ )
627
627
{
628
- unsigned int intSource = readWord (REG_INTERRUPT_SOURCE_B);
628
+ uint16_t intSource = readWord (REG_INTERRUPT_SOURCE_B);
629
629
if (clear)
630
630
writeWord (REG_INTERRUPT_SOURCE_B, 0xFFFF ); // Clear interrupts
631
631
return intSource;
632
632
}
633
633
634
- bool SX1509::checkInterrupt (int pin)
634
+ bool SX1509::checkInterrupt (uint8_t pin)
635
635
{
636
636
if (interruptSource (false ) & (1 << pin))
637
637
return true ;
@@ -671,9 +671,9 @@ void SX1509::configClock(uint8_t oscSource /*= 2*/, uint8_t oscPinFunction /*= 0
671
671
writeByte (REG_MISC, regMisc);
672
672
}
673
673
674
- uint8_t SX1509::calculateLEDTRegister (int ms)
674
+ uint8_t SX1509::calculateLEDTRegister (uint8_t ms)
675
675
{
676
- int regOn1, regOn2;
676
+ uint8_t regOn1, regOn2;
677
677
float timeOn1, timeOn2;
678
678
679
679
if (_clkX == 0 )
@@ -693,9 +693,9 @@ uint8_t SX1509::calculateLEDTRegister(int ms)
693
693
return regOn2;
694
694
}
695
695
696
- uint8_t SX1509::calculateSlopeRegister (int ms, uint8_t onIntensity, uint8_t offIntensity)
696
+ uint8_t SX1509::calculateSlopeRegister (uint8_t ms, uint8_t onIntensity, uint8_t offIntensity)
697
697
{
698
- int regSlope1, regSlope2;
698
+ uint16_t regSlope1, regSlope2;
699
699
float regTime1, regTime2;
700
700
701
701
if (_clkX == 0 )
@@ -727,7 +727,7 @@ uint8_t SX1509::calculateSlopeRegister(int ms, uint8_t onIntensity, uint8_t offI
727
727
uint8_t SX1509::readByte (uint8_t registerAddress)
728
728
{
729
729
uint8_t readValue;
730
- unsigned int timeout = RECEIVE_TIMEOUT_VALUE;
730
+ uint16_t timeout = RECEIVE_TIMEOUT_VALUE;
731
731
732
732
_i2cPort->beginTransmission (deviceAddress);
733
733
_i2cPort->write (registerAddress);
@@ -741,14 +741,14 @@ uint8_t SX1509::readByte(uint8_t registerAddress)
741
741
742
742
// readWord(uint8_t registerAddress)
743
743
// This function will read a two-byte word beginning at registerAddress
744
- // - A 16-bit unsigned int will be returned.
744
+ // - A 16-bit uint16_t will be returned.
745
745
// - The msb of the return value will contain the value read from registerAddress
746
746
// - The lsb of the return value will contain the value read from registerAddress + 1
747
747
uint16_t SX1509::readWord (uint8_t registerAddress)
748
748
{
749
749
uint16_t readValue;
750
750
uint16_t msb, lsb;
751
- unsigned int timeout = RECEIVE_TIMEOUT_VALUE * 2 ;
751
+ uint16_t timeout = RECEIVE_TIMEOUT_VALUE * 2 ;
752
752
753
753
_i2cPort->beginTransmission (deviceAddress);
754
754
_i2cPort->write (registerAddress);
@@ -769,7 +769,7 @@ bool SX1509::readByte(uint8_t registerAddress, uint8_t *value)
769
769
770
770
// readWord(uint8_t registerAddress)
771
771
// This function will read a two-byte word beginning at registerAddress
772
- // - A 16-bit unsigned int will be set in value.
772
+ // - A 16-bit uint16_t will be set in value.
773
773
// - The msb of the return value will contain the value read from registerAddress
774
774
// - The lsb of the return value will contain the value read from registerAddress + 1
775
775
// - Return boolean true if succesfull
@@ -800,7 +800,7 @@ bool SX1509::readBytes(uint8_t firstRegisterAddress, uint8_t *destination, uint8
800
800
801
801
if (result)
802
802
{
803
- for (int i = 0 ; i < length; i++)
803
+ for (uint8_t i = 0 ; i < length; i++)
804
804
{
805
805
destination[i] = _i2cPort->read ();
806
806
}
@@ -821,7 +821,7 @@ bool SX1509::writeByte(uint8_t registerAddress, uint8_t writeValue)
821
821
return result && (endResult == I2C_ERROR_OK);
822
822
}
823
823
824
- // writeWord(uint8_t registerAddress, ungisnged int writeValue)
824
+ // writeWord(uint8_t registerAddress, uint16_t writeValue)
825
825
// This function writes a two-byte word to registerAddress and registerAddress + 1
826
826
// - the upper byte of writeValue is written to registerAddress
827
827
// - the lower byte of writeValue is written to registerAddress + 1
@@ -848,7 +848,6 @@ bool SX1509::writeBytes(uint8_t firstRegisterAddress, uint8_t *writeArray, uint8
848
848
{
849
849
_i2cPort->beginTransmission (deviceAddress);
850
850
bool result = _i2cPort->write (firstRegisterAddress);
851
- int i = 0 ;
852
851
result = _i2cPort->write (writeArray, length);
853
852
uint8_t endResult = _i2cPort->endTransmission ();
854
853
return result && (endResult == I2C_ERROR_OK);
0 commit comments