+void LED_zeroPages( uint8_t startPage, uint8_t numPages, uint8_t pageLen )
+{
+ // Page Setup
+ uint8_t pageSetup[] = { 0xE8, 0xFD, 0x00 };
+
+ // Max length of a page + chip id + reg start
+ uint8_t fullPage[ 0xB3 + 2 ] = { 0 };
+ fullPage[0] = 0xE8; // Set chip id, starting reg is already 0x00
+
+ // Iterate through given pages, zero'ing out the given register regions
+ for ( uint8_t page = startPage; page < startPage + numPages; page++ )
+ {
+ // Set page
+ pageSetup[2] = page;
+
+ // Setup page
+ while ( I2C_Send( pageSetup, sizeof( pageSetup ), 0 ) == 0 )
+ delay(1);
+
+ // Zero out page
+ while ( I2C_Send( fullPage, pageLen + 2, 0 ) == 0 )
+ delay(1);
+ }
+}
+
+