Contents
1. Introduction
2. Foundation Services Introduction and Context
2.1. Introduction and Objectives of Foundation Services
2.2. Foundation Services Reference Manual
2.3. Documentation Resources
3. Software Architecture
3.1. Driver Use-cases and Modes
3.2. Driver Configuration and code generation
3.3. Driver Types
3.4. Project Structure
3.4.1. Project Folder Structure
3.4.2. Root Level Files
3.4.3. Examples Folder
3.4.4. Config Folder
3.4.5. Pin Configuration
3.4.6. System Initialization
4. Driver Implementation
4.1. Initialization of Peripherals
4.2. Hookup of Interrupt Service Routines
4.3. Naming Conventions for Files and Functions
4.4. Coding Standard
4.5. Driver Documentation
4.6. Software License
4.7. Known Issues
5. AC Drivers
5.1. AC Init Driver
5.1.1. Functions
5.1.1.1. AC_Init_init
6. ADC Drivers
6.1. ADC Basic Driver
6.1.1. Functions
6.1.1.1. adc_irq_cb_t typedef
6.1.1.2. adc_result_t typedef
6.1.1.3. adc_0_channel_t typedef
6.1.2. Functions
6.1.2.1. ADC_Basic_init
6.1.2.2. ADC_Basic_enable
6.1.2.3. ADC_Basic_disable
6.1.2.4. ADC_Basic_start_conversion
6.1.2.5. ADC_Basic_is_conversion_done
6.1.2.6. ADC_Basic_get_conversion_result
6.1.2.7. ADC_Basic_get_conversion
6.1.2.8. ADC_Basic_get_resolution
6.2. ADC Init Driver
6.2.1. Functions
6.2.1.1. ADC_Init_init
6.3. ADC Window Driver
6.3.1. Functions
6.3.1.1. adc_window_mode_t Enum
6.3.2. Functions
6.3.2.1. adc_irq_cb_t typedef
6.3.2.2. adc_result_t typedef
6.3.2.3. adc_0_channel_t typedef
6.3.3. Functions
6.3.3.1. ADC_Window_init
6.3.3.2. ADC_Window_enable
6.3.3.3. ADC_Window_disable
6.3.3.4. ADC_Window_enable_autotrigger
6.3.3.5. ADC_Window_disable_autotrigger
6.3.3.6. ADC_Window_set_window_high
6.3.3.7. ADC_Window_set_window_low
6.3.3.8. ADC_Window_set_window_mode
6.3.3.9. ADC_Window_set_window_channel
6.3.3.10. ADC_Window_start_conversion
6.3.3.11. ADC_Window_is_conversion_done
6.3.3.12. ADC_Window_get_conversion_result
6.3.3.13. ADC_Window_get_window_result
6.3.3.14. ADC_Window_get_conversion
6.3.3.15. ADC_Window_get_resolution
6.3.3.16. ADC_Window_register_window_callback
7. AVR Code utility functions
7.1. Atomic memory access and critical sections
7.1.1. Functions
7.1.1.1. ENTER_CRITICAL
7.1.1.2. EXIT_CRITICAL
7.1.1.3. DISABLE_INTERRUPTS
7.1.1.4. ENABLE_INTERRUPTS
7.2. Compiler abstraction
7.2.1. Functions
7.2.1.1. UNUSED
7.3. Functionality for assert.
7.3.1. Functions
7.3.1.1. ASSERT
7.4. Helper macros for baud rate calculations
7.4.1. Functions
7.4.1.1. BAUD_TOL
7.4.1.2. UBRR_VALUE
7.4.1.3. UBRRL_VALUE
7.4.1.4. UBRRH_VALUE
7.4.1.5. USE_2X
7.5. ISR abstraction
7.5.1. Interrupt_deprecated_group
7.5.1.1. Functions
7.5.1.1.1. Enable_global_interrupt
7.5.1.1.2. Disable_global_interrupt
7.5.1.1.3. Is_global_interrupt_enabled
7.5.2. Interrupt_group
7.5.2.1. Functions
7.5.2.1.1. ISR
7.5.2.1.2. cpu_irq_enable
7.5.2.1.3. cpu_irq_disable
7.6. Functions
7.6.1. ARRAY_SIZE
8. CRCSCAN Drivers
8.1. CRCSCAN Init Driver
8.1.1. Functions
8.1.1.1. CRCSCAN_Init_init
9. DAC Drivers
9.1. DAC Basic Driver
9.1.1. Functions
9.1.1.1. dac_resolution_t typedef
9.1.2. Functions
9.1.2.1. DAC_Basic_init
9.1.2.2. DAC_Basic_enable
9.1.2.3. DAC_Basic_disable
9.1.2.4. DAC_Basic_set_output
9.1.2.5. DAC_Basic_get_resolution
9.2. Functions
9.2.1. DAC_Init_init
10. Doc_driver_adc_mcp3201
10.1. Functions
10.1.1. adc_mcp3201_init
10.1.2. adc_mcp3201_cs_low
10.1.3. adc_mcp3201_cs_high
10.1.4. adc_mcp3201_start_conversion
10.1.5. adc_mcp3201_stop_conversion
10.1.6. adc_mcp3201_get_conversion_result
11. Doc_driver_adc_mcp3204
11.1. Functions
11.1.1. adc_mcp3204_init
11.1.2. adc_mcp3204_get_sample
12. Doc_driver_adc_mcp3551
12.1. Functions
12.1.1. adc_mcp3551_init
12.1.2. adc_mcp3551_get_single_conversion_result
12.1.3. adc_mcp3551_stop_conversion
13. Doc_driver_adc_mcp4161
13.1. Functions
13.1.1. adc_mcp4161_init
13.1.2. adc_mcp4161_openLine
13.1.3. adc_mcp4161_closeLine
13.1.4. adc_mcp4161_initialize
13.1.5. adc_mcp4161_exchange_byte
14. Doc_driver_ccl
14.1. Functions
14.1.1. CCL_Init_init
15. Doc_driver_dac_mcp4921
15.1. Functions
15.1.1. dac_mcp4921_init
15.1.2. dac_mcp4921_Set_Value
16. Doc_driver_evsys
16.1. Functions
16.1.1. EVSYS_Init_init
17. Doc_driver_exint
17.1. Functions
17.1.1. _EXINT_H_INCLUDED
17.2. Functions
17.2.1. EXINT_Init_init
18. Doc_driver_i2c_init
19. Doc_driver_tc16
19.1. Functions
19.1.1. _TC16_H_INCLUDED
19.2. Functions
19.2.1. TC16_Init_init
20. Doc_driver_tc8
20.1. Functions
20.1.1. _TC8_H_INCLUDED
20.2. Functions
20.2.1. TC8_Init_init
21. Doc_driver_tca
21.1. Functions
21.1.1. TCA_Init_init
22. Doc_driver_tcb
22.1. Functions
22.1.1. TCB_Init_init
23. Doc_driver_tcd
23.1. Functions
23.1.1. TCD_Init_init
24. Doc_driver_twi
24.1. Functions
24.1.1. READ
24.1.2. WRITE
24.2. Functions
24.2.1. TWI_Init_init
25. Doc_driver_wdt
25.1. Functions
25.1.1. WDT_Init_init
26. I2C Drivers
26.1. I2C Master Driver
26.1.1. Functions
26.1.1.1. I2C_Master_init
26.1.1.2. I2C_Master_open
26.1.1.3. I2C_Master_close
26.1.1.4. I2C_Master_master_operation
26.1.1.5. I2C_Master_master_write
26.1.1.6. I2C_Master_master_read
26.1.1.7. I2C_Master_set_timeout
26.1.1.8. I2C_Master_set_buffer
26.1.1.9. I2C_Master_set_data_complete_callback
26.1.1.10. I2C_Master_set_write_collision_callback
26.1.1.11. I2C_Master_set_address_nack_callback
26.1.1.12. I2C_Master_set_data_nack_callback
26.1.1.13. I2C_Master_set_timeout_callback
26.2. I2C Simple Master Driver
26.2.1. Functions
26.2.1.1. I2C_Master_read1ByteRegister
26.2.1.2. I2C_Master_read2ByteRegister
26.2.1.3. I2C_Master_write1ByteRegister
26.2.1.4. I2C_Master_write2ByteRegister
26.2.1.5. I2C_Master_writeNBytes
26.2.1.6. I2C_Master_readDataBlock
26.2.1.7. I2C_Master_readNBytes
26.3. I2C Slave Driver
26.3.1. Functions
26.3.1.1. I2C_Slave_init
26.3.1.2. I2C_Slave_open
26.3.1.3. I2C_Slave_close
26.3.1.4. I2C_Slave_isr
26.3.1.5. I2C_Slave_read
26.3.1.6. I2C_Slave_write
26.3.1.7. I2C_Slave_enable
26.3.1.8. I2C_Slave_send_ack
26.3.1.9. I2C_Slave_send_nack
26.3.1.10. I2C_Slave_goto_unaddressed
26.3.1.11. I2C_Slave_set_read_callback
26.3.1.12. I2C_Slave_set_write_callback
26.3.1.13. I2C_Slave_set_address_callback
26.3.1.14. I2C_Slave_set_stop_callback
26.3.1.15. I2C_Slave_set_collision_callback
26.3.1.16. I2C_Slave_set_bus_error_callback
27. NVMCTRL Driver
27.1. NVMCTRL Basic Driver
27.1.1. Functions
27.1.1.1. nvmctrl_status_t Enum
27.1.2. Functions
27.1.2.1. flash_adr_t typedef
27.1.2.2. eeprom_adr_t typedef
27.1.3. Functions
27.1.3.1. NVMCTRL_Basic_init
27.1.3.2. NVMCTRL_Basic_read_eeprom_byte
27.1.3.3. NVMCTRL_Basic_write_eeprom_byte
27.1.3.4. NVMCTRL_Basic_read_eeprom_block
27.1.3.5. NVMCTRL_Basic_write_eeprom_block
27.1.3.6. NVMCTRL_Basic_is_eeprom_ready
27.1.3.7. NVMCTRL_Basic_read_flash_byte
27.1.3.8. NVMCTRL_Basic_write_flash_byte
27.1.3.9. NVMCTRL_Basic_erase_flash_page
27.1.3.10. NVMCTRL_Basic_write_flash_page
27.1.3.11. NVMCTRL_Basic_write_flash_block
27.1.3.12. NVMCTRL_Basic_write_flash_stream
27.2. NVMCTRL Init Driver
27.2.1. Functions
27.2.1.1. NVMCTRL_Init_init
28. PWM Drivers
28.1. PWM Basic Driver
28.1.1. Functions
28.1.1.1. PWM_Basic_INTERRUPT_CB_RATE
28.1.2. Functions
28.1.2.1. pwm_irq_cb_t typedef
28.1.2.2. PWM_Basic_register_t typedef
28.1.3. Functions
28.1.3.1. PWM_Basic_init
28.1.3.2. PWM_Basic_enable
28.1.3.3. PWM_Basic_disable
28.1.3.4. PWM_Basic_enable_output_ch0
28.1.3.5. PWM_Basic_disable_output_ch0
28.1.3.6. PWM_Basic_enable_output_ch1
28.1.3.7. PWM_Basic_disable_output_ch1
28.1.3.8. PWM_Basic_load_counter
28.1.3.9. PWM_Basic_load_duty_cycle_ch0
28.1.3.10. PWM_Basic_load_duty_cycle_ch1
28.1.3.11. PWM_Basic_register_callback
29. RTC Drivers
29.1. RTC Init Driver
29.1.1. Functions
29.1.1.1. RTC_Init_init
30. SPI Drivers
30.1. SPI Basic
30.1.1. Functions
30.1.1.1. spi_transfer_type Enum
30.1.1.2. spi_transfer_status Enum
30.1.2. Functions
30.1.2.1. spi_transfer_done_cb_t typedef
30.1.2.2. spi_transfer_type_t typedef
30.1.2.3. spi_transfer_status_t typedef
30.1.3. Functions
30.1.3.1. SPI_Basic_init
30.1.3.2. SPI_Basic_enable
30.1.3.3. SPI_Basic_disable
30.1.3.4. SPI_Basic_exchange_byte
30.1.3.5. SPI_Basic_exchange_block
30.1.3.6. SPI_Basic_write_block
30.1.3.7. SPI_Basic_read_block
30.1.3.8. SPI_Basic_register_callback
30.1.3.9. SPI_Basic_status_free
30.1.3.10. SPI_Basic_status_idle
30.1.3.11. SPI_Basic_status_busy
30.1.3.12. SPI_Basic_status_done
30.2. SPI Init
30.2.1. Functions
30.2.1.1. SPI_Init_init
31. System drivers
31.1. Brown-Out Detector (BOD)
31.1.1. Functions
31.1.1.1. BOD_Init_init
31.2. CPU Interrupt Controller
31.2.1. Functions
31.2.1.1. CPUINT_Init_init
31.3. Clock Controller
31.3.1. Functions
31.3.1.1. CLKCTRL_Init_init
31.4. Configuration Change Protection
31.4.1. Functions
31.4.1.1. ccp_write_io
31.5. Protected IO
31.5.1. Functions
31.5.1.1. protected_write_io
31.5.2. Functions
31.5.2.1. CONFIG_MEMORY_MODEL_TINY
31.5.2.2. CONFIG_MEMORY_MODEL_SMALL
31.5.2.3. CONFIG_MEMORY_MODEL_LARGE
31.6. Reset Controller
31.6.1. Functions
31.6.1.1. RSTCTRL_reset
31.6.1.2. RSTCTRL_get_reset_cause
31.6.1.3. RSTCTRL_clear_reset_cause
31.7. Sleep Controller
31.7.1. Functions
31.7.1.1. SLPCTRL_Init_init
31.8. System Control (PM, SYSCLK, SYSRST)
31.8.1. Functions
31.8.1.1. sleep_enter
31.8.2. Functions
31.8.2.1. sleep_enable
31.8.2.2. sleep_disable
31.8.2.3. sleep_set_mode
31.8.2.4. sysctrl_init
31.9. Functions
31.9.1. MCU_RESET_CAUSE_POR
31.9.2. MCU_RESET_CAUSE_EXT
31.9.3. MCU_RESET_CAUSE_BOR
31.9.4. MCU_RESET_CAUSE_WDT
31.10. Functions
31.10.1. mcu_init
32. Timer Drivers
32.1. Timeout Driver
32.1.1. Functions
32.1.1.1. timer_struct_s Struct
32.1.2. Functions
32.1.2.1. absolutetime_t typedef
32.1.2.2. timercallback_ptr_t typedef
32.1.2.3. timer_struct_t typedef
32.1.3. Functions
32.1.3.1. Timeout_timeout_init
32.1.3.2. Timeout_timeout_create
32.1.3.3. Timeout_timeout_delete
32.1.3.4. Timeout_timeout_flush_all
32.1.3.5. Timeout_timeout_call_next_callback
32.1.3.6. Timeout_timeout_start_timer
32.1.3.7. Timeout_timeout_stop_timer
33. USART Drivers
33.1. USART Basic
33.1.1. Functions
33.1.1.1. USART_Basic_RX_BUFFER_SIZE
33.1.1.2. USART_Basic_TX_BUFFER_SIZE
33.1.1.3. USART_Basic_RX_BUFFER_MASK
33.1.1.4. USART_Basic_TX_BUFFER_MASK
33.1.2. Functions
33.1.2.1. usart_cb_t Enum
33.1.3. Functions
33.1.3.1. usart_callback typedef
33.1.4. Functions
33.1.4.1. USART_Basic_init
33.1.4.2. USART_Basic_enable
33.1.4.3. USART_Basic_enable_rx
33.1.4.4. USART_Basic_enable_tx
33.1.4.5. USART_Basic_disable
33.1.4.6. USART_Basic_get_data
33.1.4.7. USART_Basic_is_tx_ready
33.1.4.8. USART_Basic_is_rx_ready
33.1.4.9. USART_Basic_is_tx_busy
33.1.4.10. USART_Basic_read
33.1.4.11. USART_Basic_write
33.1.4.12. USART_Basic_set_ISR_cb
33.2. USART Init
33.2.1. Functions
33.2.1.1. USART_Init_init
34. VREF Init Driver
34.1. Functions
34.1.1. VREF_Init_init
The Microchip Web Site
Customer Change Notification Service
Customer Support
Microchip Devices Code Protection Feature
Legal Notice
Trademarks
Quality Management System Certified by DNV
Worldwide Sales and Service
The Microchip Web Site
Customer Change Notification Service
Customer Support
Microchip Devices Code Protection Feature
Legal Notice
Trademarks
Quality Management System Certified by DNV
Worldwide Sales and Service