Unit tests for PWM driver.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
#include <stdint.h>
#include <stdbool.h>
#include <board.h>
#include <sysclk.h>
#include <pwm.h>
#include <pdc.h>
#include <string.h>
#include <unit_test/suite.h>
#include <stdio_serial.h>
#include <conf_test.h>
#include <conf_board.h>
Macros | |
#define | PERIOD_VALUE 50 |
PWM period value. More... | |
#define | PWM_FREQUENCY 50 |
PWM frequency in Hz. More... | |
Functions | |
static void | delay_ms (uint32_t ul_dly_ticks) |
Delay number of tick Systicks (happens every 1 ms). More... | |
int | main (void) |
Run PWM driver unit tests. More... | |
void | PWM_Handler (void) |
PWM interrupt handler. More... | |
static void | run_pwm_test (const struct test_case *test) |
Test PWM setting. More... | |
void | SysTick_Handler (void) |
SysTick handler. More... | |
Variables | |
pdc_packet_t | g_pdc_tx_packet |
PDC transfer packet. More... | |
static volatile int32_t | gs_l_pwm_comparison_int_flag = 0U |
static volatile int32_t | gs_l_pwm_pdc_tx_int_flag = 0U |
static volatile int32_t | gs_l_pwm_period_int_flag = 0U |
static volatile uint32_t | gs_ul_ms_ticks = 0U |
#define PERIOD_VALUE 50 |
PWM period value.
Referenced by run_pwm_test().
#define PWM_FREQUENCY 50 |
PWM frequency in Hz.
Referenced by run_pwm_test().
|
static |
Delay number of tick Systicks (happens every 1 ms).
References gs_ul_ms_ticks.
Referenced by run_pwm_test().
int main | ( | void | ) |
Run PWM driver unit tests.
References uart_rs232_options::baudrate, board_init(), CONF_TEST_BAUDRATE, CONF_TEST_PARITY, CONF_TEST_USART, CONSOLE_UART_ID, DEFINE_TEST_ARRAY, DEFINE_TEST_CASE, DEFINE_TEST_SUITE, run_pwm_test(), stdio_serial_init(), sysclk_enable_peripheral_clock(), sysclk_get_cpu_hz(), sysclk_init(), and test_suite_run().
void PWM_Handler | ( | void | ) |
PWM interrupt handler.
References gs_l_pwm_comparison_int_flag, gs_l_pwm_pdc_tx_int_flag, gs_l_pwm_period_int_flag, pwm_channel_get_interrupt_status(), pwm_get_interrupt_status(), PWM_UNIT_TEST_CH, and PWM_UNIT_TEST_CMP.
|
static |
Test PWM setting.
This test sets the PWM APIs.
test | Current test case. |
References pwm_channel_t::channel, delay_ms(), gs_l_pwm_comparison_int_flag, gs_l_pwm_pdc_tx_int_flag, gs_l_pwm_period_int_flag, gs_ul_ms_ticks, pdc_enable_transfer(), pdc_tx_init(), PERIOD_VALUE, pmc_enable_periph_clk(), pwm_channel_disable(), pwm_channel_disable_interrupt(), pwm_channel_enable(), pwm_channel_enable_interrupt(), pwm_channel_init(), pwm_cmp_disable_interrupt(), pwm_cmp_enable_interrupt(), pwm_cmp_init(), PWM_CMP_MATCH, PWM_FREQUENCY, pwm_init(), pwm_pdc_enable_interrupt(), pwm_pdc_set_request_mode(), PWM_PDC_UPDATE_PERIOD_ELAPSED, pwm_sync_init(), PWM_SYNC_UPDATE_MODE_2, PWM_UNIT_TEST_CH, PWM_UNIT_TEST_CMP, sysclk_get_cpu_hz(), test_assert_true, pdc_packet::ul_addr, pwm_clock_t::ul_clka, pwm_channel_t::ul_prescaler, pdc_packet::ul_size, and pwm_cmp_t::unit.
Referenced by main().
void SysTick_Handler | ( | void | ) |
SysTick handler.
References gs_ul_ms_ticks.
pdc_packet_t g_pdc_tx_packet |
PDC transfer packet.
|
static |
Referenced by PWM_Handler(), and run_pwm_test().
|
static |
Referenced by PWM_Handler(), and run_pwm_test().
|
static |
Referenced by PWM_Handler(), and run_pwm_test().
|
static |
Referenced by delay_ms(), run_pwm_test(), and SysTick_Handler().