add function to mutate sequence

main
rkcf 2023-01-27 19:00:57 -06:00
parent d075f1e538
commit 37d6a701bc
1 changed files with 13 additions and 2 deletions

View File

@ -181,12 +181,22 @@ static void pulse_cv(uint8_t gpio_num) {
} }
} }
static void gen_rand_seq(uint8_t *sequence) { static void randomize_seq(uint8_t *sequence) {
for (uint8_t i = 0; i < SEQ_MAX_LEN; i++) { for (uint8_t i = 0; i < SEQ_MAX_LEN; i++) {
sequence[i] = esp_random() % 2; sequence[i] = esp_random() % 2;
} }
} }
static void mutate_seq(uint8_t *sequence) {
// pick a step to mutate
uint8_t step = esp_random() % SEQ_MAX_LEN;
if (sequence[step] == 1) {
sequence[step] = 0;
} else if (sequence[step] == 0) {
sequence[step] = 1;
}
}
void app_main(void) { void app_main(void) {
/* Initialize Peripherals */ /* Initialize Peripherals */
/* Initialize GPIO */ /* Initialize GPIO */
@ -196,6 +206,7 @@ void app_main(void) {
/* Initialize sequence */ /* Initialize sequence */
uint8_t sequence[SEQ_MAX_LEN] = {0}; uint8_t sequence[SEQ_MAX_LEN] = {0};
uint8_t seq_len = SEQ_MAX_LEN; uint8_t seq_len = SEQ_MAX_LEN;
randomize_seq(sequence);
/* Main Loop */ /* Main Loop */
while (1) { while (1) {
@ -212,7 +223,7 @@ void app_main(void) {
printf("%i", sequence[step]); printf("%i", sequence[step]);
vTaskDelay(500 / portTICK_PERIOD_MS); vTaskDelay(500 / portTICK_PERIOD_MS);
} }
gen_rand_seq(sequence); mutate_seq(sequence);
printf("\n"); printf("\n");
} }