1 Harmony 3 Peripheral Library Application Examples for SAM C20/C21 Family
The following applications are provided to demonstrate the typical or interesting usage
            models of one or more peripheral libraries.
| Name | Description | 
|---|---|
| AC PWM Generation | This example application shows how to use the Analog Comparator Peripheral library to generate a 1 kHz PWM waveform | 
| AC Sleepwalking | This example application shows how to use the AC Peripheral library to perform a single shot comparison in standby sleep mode periodically and wake up the device at the end of a successful comparison | 
| ADC DMA Sleepwalking | This application shows how to configure the ADC in a sleepwalking operation, where the input voltage is measured at a fixed interval, and then the device is woken from sleep after conversion of 16 samples | 
| ADC Sample | This example application shows how to sample an analog input using the ADC and displays the converted samples on a serial terminal | 
| ADC Window Sleepwalking | This application shows how to configure ADC in a sleepwalking operation, where input voltage is measured at a fixed interval, but device is not woken from sleep until the measured value is below a given threshold | 
| CAN Blocking | This example application shows how to use the CAN module to transmit and receive normal CAN messages in polling mode | 
| CAN FD Blocking | This example application shows how to use the CAN module to transmit and receive CAN FD messages in polling mode | 
| CAN FD Interrupt | This example application shows how to use the CAN module to transmit and receive CAN FD messages in interrupt mode | 
| CCL Manchester Encoder | This example application shows how to use the CCL peripheral library and generate a Manchester-encoded output | 
| Clock Configuration | This example application shows how to configure the clock system to run the device at maximum frequency. It also outputs a prescaled clock signal on a GPIO pin for measurement and verification | 
| DAC Waveform Generation | This example application shows how to use the DAC to generate a 1 kHz Sine or Sawtooth wave with a lookup table | 
| DAC Waveform Generation with DMA | This example application shows how to use the DAC with the DMA to generate a 5 kHz sinusoidal waveform without CPU intervention | 
| DIVAS Accelerate Computations | This example application demonstrates how to use the DIVAS accelerator to compute square room, and perform a division and modulus operation | 
| DIVAS Override C Division Operator | This example application demonstrates how to override C division operator and modulus operator to use the DIVAS accelerator | 
| DMAC Memory Transfer | This example application demonstrates how to use the DMAC peripheral to do a memory to memory transfer | 
| DMAC USART Echo | This example application demonstrates USART transfer with DMA to receive 10 bytes and echo back the received bytes | 
| DSU Compute CRC32 | This example application demonstrates how to use the DSU Peripheral library to compute 32-bit Cyclic Redundancy Checksum (CRC) | 
| EIC Interrupt | This example application demonstrates how to generate interrupt using the EIC on switch press and indicate it through an LED | 
| EVSYS Trigger | This example application demonstrates how to use the EVSYS Peripheral library to setup autonomous, low-latency and configurable communication between peripherals | 
| FREQM Measurement | This example application demonstrates how to use the FREQM peripheral to measure the frequency of the internal RC Oscillator | 
| NVMCTRL Flash Read While Write (RWW) | This example application demonstrates code execution from the main Flash memory while performing erase operation in read-while-write section | 
| NVMCTRL Read Write | This example application demonstrates how to use the NVMCTRL to erase and program the internal Flash memory | 
| PM Wakeup Using EIC | This application demonstrates entering the low power modes and exiting it using the EIC | 
| PM Wakeup Using RTC | This example demonstrates entering the low power modes and exiting it using the RTC | 
| PORT Polling | This example application demonstrate how to poll the switch input, and indicate the switch status using the LED | 
| RSTC Reset Cause | This example shows how to use the RSTC peripheral to indicate the cause of the device reset | 
| RTC Alarm Interrupt | This example shows how to use the RTC to configure the time and generate the alarm | 
| RTC Periodic Interrupt | This example application shows how to use the RTC to generate periodic interrupts | 
| SDADC Sample | This example application shows how to sample an analog input using SDADC and displays the converted samples on a serial terminal | 
| SERCOM I2C EEPROM Emulation (I2C Client) | This example application demonstrates how to use the SERCOM peripheral in client mode | 
| SERCOM I2C EEPROM Read Write | This example application demonstrates how to use the SERCOM peripheral to write and read from the I2C serial EEPROM memory | 
| SERCOM SPI Blocking | This example application demonstrates how to use the SERCOM SPI peripheral to transmit and receive a block of data in a blocking manner | 
| SERCOM SPI EEPROM Read Write | This example application demonstrates how to use the SERCOM SPI peripheral to write and read from the SPI serial EEPROM memory | 
| SERCOM SPI Interrupt | This example application shows how to use SERCOM SPI PLIB with external loop back to write and then read back an array of data in interrupt mode | 
| SERCOM SPI Ping Pong with DMA | This example demonstrates how to continuously transmit and receive data over a SPI interface using ping pong buffers with DMA | 
| SERCOM USART Blocking | This example application demonstrates how to use the SERCOM peripheral in USART mode to transfer block of data in a blocking manner | 
| SERCOM USART Interrupt | This example application demonstrates how to use the SERCOM peripheral in USART mode to transfer data in a non-blocking manner | 
| SERCOM USART LIN Host | This example application demonstrates how to use the SERCOM USART peripheral in LIN Host mode | 
| SERCOM USART LIN Client | This example application demonstrates how to use the SERCOM USART peripheral in LIN Client mode | 
| SERCOM USART Ring Buffer | This example application demonstrates how to use the SERCOM peripheral in USART ring buffer mode to transfer data in a non-blocking manner | 
| SERCOM USART Start of Frame (SOF) interrupt | This example application demonstrates how to use the SERCOM peripheral in USART ring buffer mode with SoF to wake-up device from sleep mode | 
| Systick Periodic Interrupt | This example shows how to use the SysTick to generate periodic interrupts | 
| TC Capture Mode | This example shows how to use the TC module in capture mode to measure duty cycle and frequency of an external input | 
| TC Compare Mode | This example shows how to use the TC module in compare mode to generate an active low, active high, and toggle output on compare match | 
| TC Timer Mode | This example shows how to use the TC module in timer mode to generate periodic interrupt | 
| TCC PWM Generation | This example application shows how to use the TCC to generate a 2 or 3 phase PWM signals for motor control with dead time | 
| TSENS Temperature Measurement | This example application shows how to measure operating temperature of the device using the TSENS peripheral and displays the measured temperature on a serial terminal. | 
| WDT Timeout | This example shows how to generate a Watchdog timer reset by emulating a deadlock | 
