| 319 | # @param IRQ_Status IRQ status register to update |
| 320 | # @return IRQ_Status return updated register |
| 321 | def timerEvent(IRQ_Status): |
| 322 | global STATUS |
| 323 | |
| 324 | Record.trackTime() |
| 325 | if (CONTROL & CONTROL_DMA_Msk) == 0: |
| 326 | data = Record.getData(SAMPLE_SIZE) |
| 327 | for b in range(SAMPLE_SIZE): |
| 328 | byte = FIFO.put(data[b]) |
| 329 | if byte is None: |
| 330 | STATUS |= STATUS_OVERFLOW_Msk |
| 331 | IRQ_Status |= IRQ_Status_Overflow_Msk |
| 332 | logger.debug("Overflow detected") |
| 333 | break |
| 334 | |
| 335 | if FIFO.threshold: |
| 336 | IRQ_Status |= IRQ_Status_Threshold_Msk |
| 337 | logger.debug("Threshold event") |
| 338 | else: |
| 339 | IRQ_Status |= IRQ_Status_Threshold_Msk |
| 340 | logger.debug("DMA Threshold event") |
| 341 | |
| 342 | return IRQ_Status |
| 343 | |
| 344 | |
| 345 | ## Read data from peripheral for DMA P2M transfer (VSI DMA) |