Write to the CONTROL register (user register). Args: value: 32-bit value to write to CONTROL register.
(value)
| 345 | |
| 346 | |
| 347 | def wrCONTROL(value): |
| 348 | """ |
| 349 | Write to the CONTROL register (user register). |
| 350 | |
| 351 | Args: |
| 352 | value: 32-bit value to write to CONTROL register. |
| 353 | """ |
| 354 | global CONTROL, STATUS |
| 355 | |
| 356 | if ((value ^ CONTROL) & CONTROL_MODE_Msk) != 0: |
| 357 | # MODE bit changed |
| 358 | if (value & CONTROL_MODE_Msk) != 0: |
| 359 | logger.info("wrCONTROL: CONTROL register updated: MODE bit set") |
| 360 | Audio.setMode(CONTROL_MODE_OUT) |
| 361 | else: |
| 362 | logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared") |
| 363 | Audio.setMode(CONTROL_MODE_IN) |
| 364 | |
| 365 | if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0: |
| 366 | # ENABLE bit changed |
| 367 | if (value & CONTROL_ENABLE_Msk) != 0: |
| 368 | logger.info("wrCONTROL: CONTROL register updated: ENABLE bit set") |
| 369 | |
| 370 | # Configure stream |
| 371 | configuration_valid = Audio.configureStream(CHANNELS, SAMPLE_RATE, SAMPLE_BITS) |
| 372 | if configuration_valid: |
| 373 | # Configuration is valid, enable stream |
| 374 | server_active = Audio.enableStream() |
| 375 | |
| 376 | if server_active: |
| 377 | STATUS |= STATUS_ACTIVE_Msk |
| 378 | STATUS &= ~STATUS_EOS_Msk |
| 379 | else: |
| 380 | logger.error("wrCONTROL: enable stream failed") |
| 381 | else: |
| 382 | logger.error("wrCONTROL: configure stream failed") |
| 383 | else: |
| 384 | logger.info("wrCONTROL: CONTROL register updated: ENABLE bit cleared") |
| 385 | Audio.disableStream() |
| 386 | |
| 387 | STATUS &= ~STATUS_ACTIVE_Msk |
| 388 | logger.info("wrCONTROL: STATUS register updated: ACTIVE bit cleared") |
| 389 | |
| 390 | CONTROL = value |
| 391 | |
| 392 | |
| 393 | def rdSTATUS(): |
no test coverage detected