   SPI_DAC->SPI_IDR = ~SPI_IDR_TDRE;
   SPI_DAC->SPI_IER = SPI_IER_TDRE;
   
-  // We do not enable the IRQ line itself; we only want TDRE interrupts when
-  // we are actully sending someting words.
+  // We do not enable the IRQ line itself here; we only want TDRE interrupts
+  // when we are actully sending someting words.
 }
 
 

//   than a handful of waveforms are required. If that becomes an issue, it
//   might make sense to read waveforms from an SD card via SPI. The SPI
//   interface of an SD (MMC) card can be clocked at 25 MHz, so it is probably
//   fast enough for may applications.


//
// Serial communication protocol
//

// Commands are terminated with LF
//
// ID - identify the device
// ID\n


// Static descriptions of the waveforms for each channel
struct WaveformBank {
  // Pointer to the start of the waveform table, for each channel. (Channels
  // may share the same table.)
  uint16_t *channel_waveform[NUM_CHANNELS];

  // Starting offset (phase) into the table, for each channel. (The actual
  // array is stored outside of this struct, since it may be shared between
  // multiple banks.)
  size_t *channel_offset;
};

