Nevermind, did a force erase, and manually ran dfu-programmer atmega32u4 flash hhkb_lufa.hex
and it came back. Now to find a way to compress my code:
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case MY_FUNC:
if (!record->event.pressed && record->tap.count > 0 && !(record->tap.interrupted)) {
int seed_size = 1000000;
int seed_array[seed_size];
// Seed rand from memory+time and generate random number
int seed = 0; for (int i = 0 ; i < seed_size; i++) seed ^= abs(seed_array[i]);
seed = abs(seed);
srand(seed);
int number = rand();
// Print
// printf("Seed: %d\n", seed);
// printf("Number: %d\n", number);
// Count digits
int c = 0, n = number;
while (n != 0) {n /= 10; c++; }
// Extract each digit
int numberArray[c]; c = 0; n = number;
while (n != 0) {numberArray[c] = n % 10; n /= 10; c++; }
// Print
// printf("Verify: ");
for (int i = c - 1 ; i >= 0; i--) {
// // printf("%d", numberArray[i]);
uint8_t k;
switch(numberArray[i]) {
case 0: k = 0x27; break;
case 1: k = 0x18; break;
case 2: k = 0x19; break;
case 3: k = 0x20; break;
case 4: k = 0x21; break;
case 5: k = 0x22; break;
case 6: k = 0x23; break;
case 7: k = 0x24; break;
case 8: k = 0x25; break;
case 9: k = 0x26; break;
}
register_code(k);
unregister_code(k);
// printf("%d(%x) ", numberArray[i], k);
}
send_keyboard_report();
record->tap.count = 0; // ad hoc: cancel tap
}
break;
}
}