kopia lustrzana https://github.com/bristol-seds/pico-tracker
56 wiersze
1.6 KiB
C
56 wiersze
1.6 KiB
C
#ifndef __verification__
|
|
#define __verification__
|
|
#endif
|
|
|
|
/****************************//* gps_baud_error_tc *//****************************/
|
|
/**
|
|
* Calculates the real hardware baud rate for gps serial
|
|
*/
|
|
#include "hw_config.h"
|
|
#include "sercom/sercom.h"
|
|
#include "sercom/usart.h"
|
|
|
|
/* Parameters in */
|
|
struct gps_baud_error_tc_params {
|
|
|
|
/* Input paramters to your test case go here */
|
|
uint32_t dummy;
|
|
|
|
} gps_baud_error_tc_params;
|
|
/* Results out */
|
|
struct gps_baud_error_tc_results {
|
|
|
|
/* Result values should be populated here */
|
|
uint32_t intended_baud;
|
|
uint32_t peripheral_clock;
|
|
uint16_t calculated_baud;
|
|
|
|
} gps_baud_error_tc_results;
|
|
/* Function */
|
|
__verification__ void gps_baud_error_tc(void) {
|
|
|
|
/**
|
|
* The main body of the test case goes here.
|
|
*
|
|
* Use the input parameters to run the test case. Populate the
|
|
* results structure at the end
|
|
*/
|
|
|
|
uint32_t sercom_index = _sercom_get_sercom_inst_index((Sercom*)GPS_SERCOM);
|
|
uint32_t gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
|
|
uint32_t baudrate = GPS_BAUD_RATE;
|
|
uint16_t baud; /* The actual register value */
|
|
|
|
enum sercom_asynchronous_operation_mode mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
|
|
enum sercom_asynchronous_sample_num sample_num = SERCOM_ASYNC_SAMPLE_NUM_16;
|
|
|
|
uint32_t peripheral_clock = system_gclk_chan_get_hz(gclk_index);
|
|
|
|
_sercom_get_async_baud_val(baudrate,
|
|
peripheral_clock, &baud, mode, sample_num);
|
|
|
|
gps_baud_error_tc_results.intended_baud = baudrate;
|
|
gps_baud_error_tc_results.peripheral_clock = peripheral_clock;
|
|
gps_baud_error_tc_results.calculated_baud = baud;
|
|
}
|