Microchip® Advanced Software Framework

pdca.c File Reference

PDCA driver for SAM4L.

This file defines a useful set of functions for the PDCA interface on SAM4L devices.

Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.

#include "pdca.h"
#include "sysclk.h"
#include "sleepmgr.h"

Functions

void PDCA_0_Handler (void)
 Interrupt handler for PDCA channel 0. More...
 
void PDCA_10_Handler (void)
 Interrupt handler for PDCA channel 10. More...
 
void PDCA_11_Handler (void)
 Interrupt handler for PDCA channel 11. More...
 
void PDCA_12_Handler (void)
 Interrupt handler for PDCA channel 12. More...
 
void PDCA_13_Handler (void)
 Interrupt handler for PDCA channel 13. More...
 
void PDCA_14_Handler (void)
 Interrupt handler for PDCA channel 14. More...
 
void PDCA_15_Handler (void)
 Interrupt handler for PDCA channel 15. More...
 
void PDCA_1_Handler (void)
 Interrupt handler for PDCA channel 1. More...
 
void PDCA_2_Handler (void)
 Interrupt handler for PDCA channel 2. More...
 
void PDCA_3_Handler (void)
 Interrupt handler for PDCA channel 3. More...
 
void PDCA_4_Handler (void)
 Interrupt handler for PDCA channel 4. More...
 
void PDCA_5_Handler (void)
 Interrupt handler for PDCA channel 5. More...
 
void PDCA_6_Handler (void)
 Interrupt handler for PDCA channel 6. More...
 
void PDCA_7_Handler (void)
 Interrupt handler for PDCA channel 7. More...
 
void PDCA_8_Handler (void)
 Interrupt handler for PDCA channel 8. More...
 
void PDCA_9_Handler (void)
 Interrupt handler for PDCA channel 9. More...
 
void pdca_channel_clear_error (pdca_channel_num_t pdca_ch_number)
 Clear transfer error for the given channel. More...
 
void pdca_channel_disable (pdca_channel_num_t pdca_ch_number)
 Disable the PDCA for the given channel. More...
 
void pdca_channel_disable_interrupt (pdca_channel_num_t pdca_ch_number, const pdca_channel_interrupt_mask_t pdca_channel_interrupt_mask)
 Disable PDCA interrupt. More...
 
void pdca_channel_enable (pdca_channel_num_t pdca_ch_number)
 Enable the PDCA for the given channel. More...
 
void pdca_channel_enable_interrupt (pdca_channel_num_t pdca_ch_number, const pdca_channel_interrupt_mask_t pdca_channel_interrupt_mask)
 Enable PDCA transfer error interrupt. More...
 
volatile PdcaChannel * pdca_channel_get_handler (pdca_channel_num_t pdca_ch_number)
 Get PDCA channel handler. More...
 
pdca_channel_interrupt_mask_t pdca_channel_get_interrupt_mask (pdca_channel_num_t pdca_ch_number)
 Get PDCA interrupt mask. More...
 
static void pdca_channel_interrupt (const pdca_channel_num_t pdca_ch_number)
 Common PDCA channel interrupt handler. More...
 
bool pdca_channel_is_enabled (pdca_channel_num_t pdca_ch_number)
 Check if PDCA channel is enabled. More...
 
uint32_t pdca_channel_read_load_size (pdca_channel_num_t pdca_ch_number)
 Read PDCA channel load values from hardware. More...
 
uint32_t pdca_channel_read_reload_size (pdca_channel_num_t pdca_ch_number)
 Read PDCA channel reload values from hardware. More...
 
void pdca_channel_set_callback (pdca_channel_num_t pdca_ch_number, pdca_callback_t callback, uint8_t irq_line, uint8_t irq_level, const pdca_channel_interrupt_mask_t pdca_channel_interrupt_mask)
 Set callback for given PDCA channel. More...
 
void pdca_channel_set_config (pdca_channel_num_t pdca_ch_number, const pdca_channel_config_t *cfg)
 Write PDCA channel configuration to hardware. More...
 
void pdca_channel_write_load (pdca_channel_num_t pdca_ch_number, volatile void *addr, uint32_t size)
 Write PDCA channel load values to hardware. More...
 
void pdca_channel_write_reload (pdca_channel_num_t pdca_ch_number, volatile void *addr, uint32_t size)
 Write PDCA channel reload values to hardware. More...
 
void pdca_disable (Pdca *pdca)
 Disable the PDCA module. More...
 
void pdca_enable (Pdca *pdca)
 Disable the PDCA module. More...
 
enum pdca_channel_status pdca_get_channel_status (pdca_channel_num_t pdca_ch_number)
 Get the PDCA channel transfer enable status. More...
 

Variables

pdca_callback_t pdca_callback_pointer [PDCA_NUMBER_OF_CHANNELS]
 PDCA private data for each channel. More...