ERIS CORE

◆ software_isr

void software_isr ( void  )
friend

Definition at line 398 of file AudioStream.cpp.

399 {
400  AudioStream *p;
401 
402  uint32_t totalcycles = ARM_DWT_CYCCNT;
403  //digitalWriteFast(2, HIGH);
404  for (p = AudioStream::first_update; p; p = p->next_update) {
405  if (p->active) {
406  uint32_t cycles = ARM_DWT_CYCCNT;
407  p->update();
408  // TODO: traverse inputQueueArray and release
409  // any input blocks that weren't consumed?
410  cycles = (ARM_DWT_CYCCNT - cycles) >> 6;
411  p->cpu_cycles = cycles;
412  if (cycles > p->cpu_cycles_max) p->cpu_cycles_max = cycles;
413  }
414  }
415  //digitalWriteFast(2, LOW);
416  totalcycles = (ARM_DWT_CYCCNT - totalcycles) >> 6;
417  AudioStream::cpu_cycles_total = totalcycles;
418  if (totalcycles > AudioStream::cpu_cycles_total_max)
419  AudioStream::cpu_cycles_total_max = totalcycles;
420 
421  asm("DSB");
422 }
const char PROGMEM p[][16]
Definition: Eris.h:247
static AudioStream * first_update
Definition: AudioStream.h:209
static uint16_t cpu_cycles_total
Definition: AudioStream.h:179
static uint16_t cpu_cycles_total_max
Definition: AudioStream.h:180

Referenced by update_setup().