interp.h File Reference
#include "pico.h"
#include "hardware/structs/interp.h"
#include "hardware/regs/sio.h"
Include dependency graph for interp.h:

Go to the source code of this file.

Data Structures

struct  interp_config
 
struct  interp_hw_save_t
 

Macros

#define PARAM_ASSERTIONS_ENABLED_INTERP   0
 
#define interp0   interp0_hw
 
#define interp1   interp1_hw
 
#define interp_lane_claim   interp_claim_lane
 
#define interp_lane_unclaim   interp_unclaim_lane
 

Functions

static uint interp_index (interp_hw_t *interp)
 
void interp_claim_lane (interp_hw_t *interp, uint lane)
 Claim the interpolator lane specified. More...
 
void interp_claim_lane_mask (interp_hw_t *interp, uint lane_mask)
 Claim the interpolator lanes specified in the mask. More...
 
void interp_unclaim_lane (interp_hw_t *interp, uint lane)
 Release a previously claimed interpolator lane. More...
 
bool interp_lane_is_claimed (interp_hw_t *interp, uint lane)
 Determine if an interpolator lane is claimed. More...
 
void interp_unclaim_lane_mask (interp_hw_t *interp, uint lane_mask)
 Release previously claimed interpolator lanes. More...
 
static void interp_config_set_shift (interp_config *c, uint shift)
 Set the interpolator shift value. More...
 
static void interp_config_set_mask (interp_config *c, uint mask_lsb, uint mask_msb)
 Set the interpolator mask range. More...
 
static void interp_config_set_cross_input (interp_config *c, bool cross_input)
 Enable cross input. More...
 
static void interp_config_set_cross_result (interp_config *c, bool cross_result)
 Enable cross results. More...
 
static void interp_config_set_signed (interp_config *c, bool _signed)
 Set sign extension. More...
 
static void interp_config_set_add_raw (interp_config *c, bool add_raw)
 Set raw add option. More...
 
static void interp_config_set_blend (interp_config *c, bool blend)
 Set blend mode. More...
 
static void interp_config_set_clamp (interp_config *c, bool clamp)
 Set interpolator clamp mode (Interpolator 1 only) More...
 
static void interp_config_set_force_bits (interp_config *c, uint bits)
 Set interpolator Force bits. More...
 
static interp_config interp_default_config (void)
 Get a default configuration. More...
 
static void interp_set_config (interp_hw_t *interp, uint lane, interp_config *config)
 Send configuration to a lane. More...
 
static void interp_set_force_bits (interp_hw_t *interp, uint lane, uint bits)
 Directly set the force bits on a specified lane. More...
 
void interp_save (interp_hw_t *interp, interp_hw_save_t *saver)
 Save the specified interpolator state. More...
 
void interp_restore (interp_hw_t *interp, interp_hw_save_t *saver)
 Restore an interpolator state. More...
 
static void interp_set_base (interp_hw_t *interp, uint lane, uint32_t val)
 Sets the interpolator base register by lane. More...
 
static uint32_t interp_get_base (interp_hw_t *interp, uint lane)
 Gets the content of interpolator base register by lane. More...
 
static void interp_set_base_both (interp_hw_t *interp, uint32_t val)
 Sets the interpolator base registers simultaneously. More...
 
static void interp_set_accumulator (interp_hw_t *interp, uint lane, uint32_t val)
 Sets the interpolator accumulator register by lane. More...
 
static uint32_t interp_get_accumulator (interp_hw_t *interp, uint lane)
 Gets the content of the interpolator accumulator register by lane. More...
 
static uint32_t interp_pop_lane_result (interp_hw_t *interp, uint lane)
 Read lane result, and write lane results to both accumulators to update the interpolator. More...
 
static uint32_t interp_peek_lane_result (interp_hw_t *interp, uint lane)
 Read lane result. More...
 
static uint32_t interp_pop_full_result (interp_hw_t *interp)
 Read lane result, and write lane results to both accumulators to update the interpolator. More...
 
static uint32_t interp_peek_full_result (interp_hw_t *interp)
 Read lane result. More...
 
static void interp_add_accumulater (interp_hw_t *interp, uint lane, uint32_t val)
 Add to accumulator. More...
 
static uint32_t interp_get_raw (interp_hw_t *interp, uint lane)
 Get raw lane value. More...