add function to mutate sequence
parent
d075f1e538
commit
37d6a701bc
|
|
@ -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++) {
|
||||
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) {
|
||||
/* Initialize Peripherals */
|
||||
/* Initialize GPIO */
|
||||
|
|
@ -196,6 +206,7 @@ void app_main(void) {
|
|||
/* Initialize sequence */
|
||||
uint8_t sequence[SEQ_MAX_LEN] = {0};
|
||||
uint8_t seq_len = SEQ_MAX_LEN;
|
||||
randomize_seq(sequence);
|
||||
|
||||
/* Main Loop */
|
||||
while (1) {
|
||||
|
|
@ -212,7 +223,7 @@ void app_main(void) {
|
|||
printf("%i", sequence[step]);
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
}
|
||||
gen_rand_seq(sequence);
|
||||
mutate_seq(sequence);
|
||||
printf("\n");
|
||||
|
||||
}
|
||||
|
|
|
|||
Reference in New Issue