Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches

This section groups common useful functions. More...

Collaboration diagram for LSM6DSO32_common:

Functions

int32_t lsm6dso32_odr_cal_reg_set (stmdev_ctx_t *ctx, uint8_t val)
 Difference in percentage of the effective ODR(and timestamp rate) with respect to the typical. Step: 0.15%. 8-bit format, 2's complement.[set].
 
int32_t lsm6dso32_odr_cal_reg_get (stmdev_ctx_t *ctx, uint8_t *val)
 Difference in percentage of the effective ODR(and timestamp rate) with respect to the typical. Step: 0.15%. 8-bit format, 2's complement.[get].
 
int32_t lsm6dso32_mem_bank_set (stmdev_ctx_t *ctx, lsm6dso32_reg_access_t val)
 Enable access to the embedded functions/sensor hub configuration registers.[set].
 
int32_t lsm6dso32_mem_bank_get (stmdev_ctx_t *ctx, lsm6dso32_reg_access_t *val)
 Enable access to the embedded functions/sensor hub configuration registers.[get].
 
int32_t lsm6dso32_ln_pg_write_byte (stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
 Write a line(byte) in a page.[set].
 
int32_t lsm6dso32_ln_pg_write (stmdev_ctx_t *ctx, uint16_t address, uint8_t *buf, uint8_t len)
 Write buffer in a page.[set].
 
int32_t lsm6dso32_ln_pg_read_byte (stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
 Read a line(byte) in a page.[get].
 
int32_t lsm6dso32_data_ready_mode_set (stmdev_ctx_t *ctx, lsm6dso32_dataready_pulsed_t val)
 Data-ready pulsed / letched mode.[set].
 
int32_t lsm6dso32_data_ready_mode_get (stmdev_ctx_t *ctx, lsm6dso32_dataready_pulsed_t *val)
 Data-ready pulsed / letched mode.[get].
 
int32_t lsm6dso32_device_id_get (stmdev_ctx_t *ctx, uint8_t *buff)
 Device "Who am I".[get].
 
int32_t lsm6dso32_reset_set (stmdev_ctx_t *ctx, uint8_t val)
 Software reset. Restore the default values in user registers[set].
 
int32_t lsm6dso32_reset_get (stmdev_ctx_t *ctx, uint8_t *val)
 Software reset. Restore the default values in user registers.[get].
 
int32_t lsm6dso32_auto_increment_set (stmdev_ctx_t *ctx, uint8_t val)
 Register address automatically incremented during a multiple byte access with a serial interface.[set].
 
int32_t lsm6dso32_auto_increment_get (stmdev_ctx_t *ctx, uint8_t *val)
 Register address automatically incremented during a multiple byte access with a serial interface.[get].
 
int32_t lsm6dso32_boot_set (stmdev_ctx_t *ctx, uint8_t val)
 Reboot memory content. Reload the calibration parameters.[set].
 
int32_t lsm6dso32_boot_get (stmdev_ctx_t *ctx, uint8_t *val)
 Reboot memory content. Reload the calibration parameters.[get].
 
int32_t lsm6dso32_xl_self_test_set (stmdev_ctx_t *ctx, lsm6dso32_st_xl_t val)
 Linear acceleration sensor self-test enable.[set].
 
int32_t lsm6dso32_xl_self_test_get (stmdev_ctx_t *ctx, lsm6dso32_st_xl_t *val)
 Linear acceleration sensor self-test enable.[get].
 
int32_t lsm6dso32_gy_self_test_set (stmdev_ctx_t *ctx, lsm6dso32_st_g_t val)
 Angular rate sensor self-test enable.[set].
 
int32_t lsm6dso32_gy_self_test_get (stmdev_ctx_t *ctx, lsm6dso32_st_g_t *val)
 Angular rate sensor self-test enable.[get].
 

Detailed Description

This section groups common useful functions.

Function Documentation

◆ lsm6dso32_auto_increment_get()

int32_t lsm6dso32_auto_increment_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Register address automatically incremented during a multiple byte access with a serial interface.[get].

Parameters
ctxread / write interface definitions
valchange the values of if_inc in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1953 of file lsm6dso32_reg.c.

1954{
1956 int32_t ret;
1957
1958 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1959 *val = reg.if_inc;
1960
1961 return ret;
1962}
int32_t __weak lsm6dso32_read_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Read generic device register.
#define LSM6DSO32_CTRL3_C

References lsm6dso32_ctrl3_c_t::if_inc, LSM6DSO32_CTRL3_C, and lsm6dso32_read_reg().

Here is the call graph for this function:

◆ lsm6dso32_auto_increment_set()

int32_t lsm6dso32_auto_increment_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Register address automatically incremented during a multiple byte access with a serial interface.[set].

Parameters
ctxread / write interface definitions
valchange the values of if_inc in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1928 of file lsm6dso32_reg.c.

1929{
1931 int32_t ret;
1932
1933 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1934
1935 if (ret == 0)
1936 {
1937 reg.if_inc = val;
1938 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1939 }
1940
1941 return ret;
1942}
int32_t __weak lsm6dso32_write_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Write generic device register.

References lsm6dso32_ctrl3_c_t::if_inc, LSM6DSO32_CTRL3_C, lsm6dso32_read_reg(), and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_boot_get()

int32_t lsm6dso32_boot_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Reboot memory content. Reload the calibration parameters.[get].

Parameters
ctxread / write interface definitions
valchange the values of boot in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1996 of file lsm6dso32_reg.c.

1997{
1999 int32_t ret;
2000
2001 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
2002 *val = reg.boot;
2003
2004 return ret;
2005}

References lsm6dso32_ctrl3_c_t::boot, LSM6DSO32_CTRL3_C, and lsm6dso32_read_reg().

Here is the call graph for this function:

◆ lsm6dso32_boot_set()

int32_t lsm6dso32_boot_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Reboot memory content. Reload the calibration parameters.[set].

Parameters
ctxread / write interface definitions
valchange the values of boot in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1972 of file lsm6dso32_reg.c.

1973{
1975 int32_t ret;
1976
1977 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1978
1979 if (ret == 0)
1980 {
1981 reg.boot = val;
1982 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1983 }
1984
1985 return ret;
1986}

References lsm6dso32_ctrl3_c_t::boot, LSM6DSO32_CTRL3_C, lsm6dso32_read_reg(), and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_data_ready_mode_get()

int32_t lsm6dso32_data_ready_mode_get ( stmdev_ctx_t ctx,
lsm6dso32_dataready_pulsed_t val 
)

Data-ready pulsed / letched mode.[get].

Parameters
ctxread / write interface definitions
valGet the values of dataready_pulsed in reg COUNTER_BDR_REG1
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1831 of file lsm6dso32_reg.c.

1833{
1835 int32_t ret;
1836
1838 (uint8_t *)&reg, 1);
1839
1840 switch (reg.dataready_pulsed)
1841 {
1844 break;
1845
1847 *val = LSM6DSO32_DRDY_PULSED;
1848 break;
1849
1850 default:
1852 break;
1853 }
1854
1855 return ret;
1856}
#define LSM6DSO32_COUNTER_BDR_REG1
@ LSM6DSO32_DRDY_LATCHED
@ LSM6DSO32_DRDY_PULSED

References lsm6dso32_counter_bdr_reg1_t::dataready_pulsed, LSM6DSO32_COUNTER_BDR_REG1, LSM6DSO32_DRDY_LATCHED, LSM6DSO32_DRDY_PULSED, and lsm6dso32_read_reg().

Here is the call graph for this function:

◆ lsm6dso32_data_ready_mode_set()

int32_t lsm6dso32_data_ready_mode_set ( stmdev_ctx_t ctx,
lsm6dso32_dataready_pulsed_t  val 
)

Data-ready pulsed / letched mode.[set].

Parameters
ctxread / write interface definitions
valchange the values of dataready_pulsed in reg COUNTER_BDR_REG1
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1802 of file lsm6dso32_reg.c.

1804{
1806 int32_t ret;
1807
1809 (uint8_t *)&reg, 1);
1810
1811 if (ret == 0)
1812 {
1813 reg.dataready_pulsed = (uint8_t)val;
1815 (uint8_t *)&reg, 1);
1816 }
1817
1818 return ret;
1819}

References lsm6dso32_counter_bdr_reg1_t::dataready_pulsed, LSM6DSO32_COUNTER_BDR_REG1, lsm6dso32_read_reg(), and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_device_id_get()

int32_t lsm6dso32_device_id_get ( stmdev_ctx_t ctx,
uint8_t *  buff 
)

Device "Who am I".[get].

Parameters
ctxread / write interface definitions
buffbuffer that stores data read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1866 of file lsm6dso32_reg.c.

1867{
1868 int32_t ret;
1869
1870 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_WHO_AM_I, buff, 1);
1871
1872 return ret;
1873}
#define LSM6DSO32_WHO_AM_I

References lsm6dso32_read_reg(), and LSM6DSO32_WHO_AM_I.

Referenced by init_imuB(), and init_imup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_gy_self_test_get()

int32_t lsm6dso32_gy_self_test_get ( stmdev_ctx_t ctx,
lsm6dso32_st_g_t val 
)

Angular rate sensor self-test enable.[get].

Parameters
ctxread / write interface definitions
valGet the values of st_g in reg CTRL5_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 2103 of file lsm6dso32_reg.c.

2105{
2107 int32_t ret;
2108
2109 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2110
2111 switch (reg.st_g)
2112 {
2115 break;
2116
2119 break;
2120
2123 break;
2124
2125 default:
2127 break;
2128 }
2129
2130 return ret;
2131}
@ LSM6DSO32_GY_ST_NEGATIVE
@ LSM6DSO32_GY_ST_POSITIVE
@ LSM6DSO32_GY_ST_DISABLE
#define LSM6DSO32_CTRL5_C

References LSM6DSO32_CTRL5_C, LSM6DSO32_GY_ST_DISABLE, LSM6DSO32_GY_ST_NEGATIVE, LSM6DSO32_GY_ST_POSITIVE, lsm6dso32_read_reg(), and lsm6dso32_ctrl5_c_t::st_g.

Here is the call graph for this function:

◆ lsm6dso32_gy_self_test_set()

int32_t lsm6dso32_gy_self_test_set ( stmdev_ctx_t ctx,
lsm6dso32_st_g_t  val 
)

Angular rate sensor self-test enable.[set].

Parameters
ctxread / write interface definitions
valchange the values of st_g in reg CTRL5_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 2078 of file lsm6dso32_reg.c.

2080{
2082 int32_t ret;
2083
2084 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2085
2086 if (ret == 0)
2087 {
2088 reg.st_g = (uint8_t)val;
2089 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2090 }
2091
2092 return ret;
2093}

References LSM6DSO32_CTRL5_C, lsm6dso32_read_reg(), lsm6dso32_write_reg(), and lsm6dso32_ctrl5_c_t::st_g.

Here is the call graph for this function:

◆ lsm6dso32_ln_pg_read_byte()

int32_t lsm6dso32_ln_pg_read_byte ( stmdev_ctx_t ctx,
uint16_t  address,
uint8_t *  val 
)

Read a line(byte) in a page.[get].

Parameters
ctxread / write interface definitions
uint8_taddress: page line address
valread value
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1725 of file lsm6dso32_reg.c.

1727{
1728 lsm6dso32_page_rw_t page_rw;
1729 lsm6dso32_page_sel_t page_sel;
1730 lsm6dso32_page_address_t page_address;
1731 int32_t ret;
1732
1734
1735 if (ret == 0)
1736 {
1737 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1738 }
1739
1740 if (ret == 0)
1741 {
1742 page_rw.page_rw = 0x01; /* page_read enable*/
1744 (uint8_t *) &page_rw, 1);
1745 }
1746
1747 if (ret == 0)
1748 {
1750 (uint8_t *) &page_sel, 1);
1751 }
1752
1753 if (ret == 0)
1754 {
1755 page_sel.page_sel = ((uint8_t)(address >> 8) & 0x0FU);
1756 page_sel.not_used_01 = 1;
1758 (uint8_t *) &page_sel, 1);
1759 }
1760
1761 if (ret == 0)
1762 {
1763 page_address.page_addr = (uint8_t)address & 0x00FFU;
1765 (uint8_t *)&page_address, 1);
1766 }
1767
1768 if (ret == 0)
1769 {
1770 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_VALUE, val, 2);
1771 }
1772
1773 if (ret == 0)
1774 {
1775 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1776 }
1777
1778 if (ret == 0)
1779 {
1780 page_rw.page_rw = 0x00; /* page_read disable */
1782 (uint8_t *) &page_rw, 1);
1783 }
1784
1785 if (ret == 0)
1786 {
1788 }
1789
1790 return ret;
1791}
int32_t lsm6dso32_mem_bank_set(stmdev_ctx_t *ctx, lsm6dso32_reg_access_t val)
Enable access to the embedded functions/sensor hub configuration registers.[set].
#define LSM6DSO32_PAGE_SEL
@ LSM6DSO32_USER_BANK
@ LSM6DSO32_EMBEDDED_FUNC_BANK
#define LSM6DSO32_PAGE_ADDRESS
#define LSM6DSO32_PAGE_VALUE
#define LSM6DSO32_PAGE_RW

References LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), LSM6DSO32_PAGE_ADDRESS, LSM6DSO32_PAGE_RW, LSM6DSO32_PAGE_SEL, LSM6DSO32_PAGE_VALUE, lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_page_sel_t::not_used_01, lsm6dso32_page_address_t::page_addr, lsm6dso32_page_rw_t::page_rw, and lsm6dso32_page_sel_t::page_sel.

Referenced by lsm6dso32_fsm_number_of_programs_get(), lsm6dso32_fsm_start_address_get(), lsm6dso32_long_cnt_int_value_get(), lsm6dso32_mag_offset_get(), lsm6dso32_mag_sensitivity_get(), lsm6dso32_mag_soft_iron_get(), lsm6dso32_mag_x_orient_get(), lsm6dso32_mag_x_orient_set(), lsm6dso32_mag_y_orient_get(), lsm6dso32_mag_y_orient_set(), lsm6dso32_mag_z_orient_get(), lsm6dso32_mag_z_orient_set(), lsm6dso32_pedo_debounce_steps_get(), lsm6dso32_pedo_int_mode_get(), lsm6dso32_pedo_int_mode_set(), lsm6dso32_pedo_sens_get(), lsm6dso32_pedo_sens_set(), and lsm6dso32_pedo_steps_period_get().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_ln_pg_write()

int32_t lsm6dso32_ln_pg_write ( stmdev_ctx_t ctx,
uint16_t  address,
uint8_t *  buf,
uint8_t  len 
)

Write buffer in a page.[set].

Parameters
ctxread / write interface definitions
uint8_taddress: page line address
uint8_t*buf: buffer to write
uint8_tlen: buffer len
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1619 of file lsm6dso32_reg.c.

1621{
1622 lsm6dso32_page_rw_t page_rw;
1623 lsm6dso32_page_sel_t page_sel;
1624 lsm6dso32_page_address_t page_address;
1625 int32_t ret;
1626
1627 uint8_t msb, lsb;
1628 uint8_t i ;
1629 msb = ((uint8_t)(address >> 8) & 0x0FU);
1630 lsb = (uint8_t)address & 0xFFU;
1632
1633 if (ret == 0)
1634 {
1635 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1636 }
1637
1638 if (ret == 0)
1639 {
1640 page_rw.page_rw = 0x02; /* page_write enable*/
1642 (uint8_t *) &page_rw, 1);
1643 }
1644
1645 if (ret == 0)
1646 {
1648 (uint8_t *) &page_sel, 1);
1649 }
1650
1651 if (ret == 0)
1652 {
1653 page_sel.page_sel = msb;
1654 page_sel.not_used_01 = 1;
1656 (uint8_t *) &page_sel, 1);
1657 }
1658
1659 if (ret == 0)
1660 {
1661 page_address.page_addr = lsb;
1663 (uint8_t *)&page_address, 1);
1664 }
1665
1666 if (ret == 0)
1667 {
1668 for (i = 0; ((i < len) && (ret == 0)); i++)
1669 {
1670 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_PAGE_VALUE, &buf[i], 1);
1671
1672 /* Check if page wrap */
1673 if ((lsb == 0x00U) && (ret == 0))
1674 {
1675 lsb++;
1676 msb++;
1678 (uint8_t *)&page_sel, 1);
1679
1680 if (ret == 0)
1681 {
1682 page_sel.page_sel = msb;
1683 page_sel.not_used_01 = 1;
1685 (uint8_t *)&page_sel, 1);
1686 }
1687 }
1688 }
1689
1690 page_sel.page_sel = 0;
1691 page_sel.not_used_01 = 1;
1693 (uint8_t *) &page_sel, 1);
1694 }
1695
1696 if (ret == 0)
1697 {
1698 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1699 }
1700
1701 if (ret == 0)
1702 {
1703 page_rw.page_rw = 0x00; /* page_write disable */
1705 (uint8_t *) &page_rw, 1);
1706 }
1707
1708 if (ret == 0)
1709 {
1711 }
1712
1713 return ret;
1714}

References LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), LSM6DSO32_PAGE_ADDRESS, LSM6DSO32_PAGE_RW, LSM6DSO32_PAGE_SEL, LSM6DSO32_PAGE_VALUE, lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_page_sel_t::not_used_01, lsm6dso32_page_address_t::page_addr, lsm6dso32_page_rw_t::page_rw, and lsm6dso32_page_sel_t::page_sel.

Here is the call graph for this function:

◆ lsm6dso32_ln_pg_write_byte()

int32_t lsm6dso32_ln_pg_write_byte ( stmdev_ctx_t ctx,
uint16_t  address,
uint8_t *  val 
)

Write a line(byte) in a page.[set].

Parameters
ctxread / write interface definitions
uint8_taddress: page line address
valvalue to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1540 of file lsm6dso32_reg.c.

1543{
1544 lsm6dso32_page_rw_t page_rw;
1545 lsm6dso32_page_sel_t page_sel;
1546 lsm6dso32_page_address_t page_address;
1547 int32_t ret;
1548
1550
1551 if (ret == 0)
1552 {
1553 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1554 }
1555
1556 if (ret == 0)
1557 {
1558 page_rw.page_rw = 0x02; /* page_write enable */
1560 (uint8_t *) &page_rw, 1);
1561 }
1562
1563 if (ret == 0)
1564 {
1566 (uint8_t *) &page_sel, 1);
1567 }
1568
1569 if (ret == 0)
1570 {
1571 page_sel.page_sel = ((uint8_t)(address >> 8) & 0x0FU);
1572 page_sel.not_used_01 = 1;
1574 (uint8_t *) &page_sel, 1);
1575 }
1576
1577 if (ret == 0)
1578 {
1579 page_address.page_addr = (uint8_t)address & 0xFFU;
1581 (uint8_t *)&page_address, 1);
1582 }
1583
1584 if (ret == 0)
1585 {
1586 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_PAGE_VALUE, val, 1);
1587 }
1588
1589 if (ret == 0)
1590 {
1591 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_PAGE_RW, (uint8_t *) &page_rw, 1);
1592 }
1593
1594 if (ret == 0)
1595 {
1596 page_rw.page_rw = 0x00; /* page_write disable */
1598 (uint8_t *) &page_rw, 1);
1599 }
1600
1601 if (ret == 0)
1602 {
1604 }
1605
1606 return ret;
1607}

References LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), LSM6DSO32_PAGE_ADDRESS, LSM6DSO32_PAGE_RW, LSM6DSO32_PAGE_SEL, LSM6DSO32_PAGE_VALUE, lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_page_sel_t::not_used_01, lsm6dso32_page_address_t::page_addr, lsm6dso32_page_rw_t::page_rw, and lsm6dso32_page_sel_t::page_sel.

Referenced by lsm6dso32_fsm_number_of_programs_set(), lsm6dso32_fsm_start_address_set(), lsm6dso32_long_cnt_int_value_set(), lsm6dso32_mag_offset_set(), lsm6dso32_mag_sensitivity_set(), lsm6dso32_mag_soft_iron_set(), lsm6dso32_mag_x_orient_set(), lsm6dso32_mag_y_orient_set(), lsm6dso32_mag_z_orient_set(), lsm6dso32_pedo_debounce_steps_set(), lsm6dso32_pedo_int_mode_set(), lsm6dso32_pedo_sens_set(), and lsm6dso32_pedo_steps_period_set().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_mem_bank_get()

int32_t lsm6dso32_mem_bank_get ( stmdev_ctx_t ctx,
lsm6dso32_reg_access_t val 
)

Enable access to the embedded functions/sensor hub configuration registers.[get].

Parameters
ctxread / write interface definitions
valGet the values of reg_access in reg FUNC_CFG_ACCESS
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1500 of file lsm6dso32_reg.c.

1502{
1504 int32_t ret;
1505
1507 (uint8_t *)&reg, 1);
1508
1509 switch (reg.reg_access)
1510 {
1512 *val = LSM6DSO32_USER_BANK;
1513 break;
1514
1517 break;
1518
1521 break;
1522
1523 default:
1524 *val = LSM6DSO32_USER_BANK;
1525 break;
1526 }
1527
1528 return ret;
1529}
@ LSM6DSO32_SENSOR_HUB_BANK
#define LSM6DSO32_FUNC_CFG_ACCESS

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FUNC_CFG_ACCESS, lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_func_cfg_access_t::reg_access.

Here is the call graph for this function:

◆ lsm6dso32_mem_bank_set()

int32_t lsm6dso32_mem_bank_set ( stmdev_ctx_t ctx,
lsm6dso32_reg_access_t  val 
)

Enable access to the embedded functions/sensor hub configuration registers.[set].

Parameters
ctxread / write interface definitions
valchange the values of reg_access in reg FUNC_CFG_ACCESS
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1472 of file lsm6dso32_reg.c.

1474{
1476 int32_t ret;
1477
1479 (uint8_t *)&reg, 1);
1480
1481 if (ret == 0)
1482 {
1483 reg.reg_access = (uint8_t)val;
1485 (uint8_t *)&reg, 1);
1486 }
1487
1488 return ret;
1489}

References LSM6DSO32_FUNC_CFG_ACCESS, lsm6dso32_read_reg(), lsm6dso32_write_reg(), and lsm6dso32_func_cfg_access_t::reg_access.

Referenced by lsm6dso32_all_sources_get(), lsm6dso32_compression_algo_init_get(), lsm6dso32_compression_algo_init_set(), lsm6dso32_compression_algo_set(), lsm6dso32_emb_fsm_en_get(), lsm6dso32_emb_fsm_en_set(), lsm6dso32_fifo_pedo_batch_get(), lsm6dso32_fifo_pedo_batch_set(), lsm6dso32_fsm_data_rate_get(), lsm6dso32_fsm_data_rate_set(), lsm6dso32_fsm_enable_get(), lsm6dso32_fsm_enable_set(), lsm6dso32_fsm_init_get(), lsm6dso32_fsm_init_set(), lsm6dso32_fsm_out_get(), lsm6dso32_int_notification_get(), lsm6dso32_int_notification_set(), lsm6dso32_ln_pg_read_byte(), lsm6dso32_ln_pg_write(), lsm6dso32_ln_pg_write_byte(), lsm6dso32_long_clr_get(), lsm6dso32_long_clr_set(), lsm6dso32_long_cnt_flag_data_ready_get(), lsm6dso32_long_cnt_get(), lsm6dso32_long_cnt_set(), lsm6dso32_motion_flag_data_ready_get(), lsm6dso32_motion_sens_get(), lsm6dso32_motion_sens_set(), lsm6dso32_number_of_steps_get(), lsm6dso32_pedo_sens_get(), lsm6dso32_pedo_sens_set(), lsm6dso32_pedo_step_detect_get(), lsm6dso32_pin_int1_route_get(), lsm6dso32_pin_int1_route_set(), lsm6dso32_pin_int2_route_get(), lsm6dso32_pin_int2_route_set(), lsm6dso32_sh_batch_slave_0_get(), lsm6dso32_sh_batch_slave_0_set(), lsm6dso32_sh_batch_slave_1_get(), lsm6dso32_sh_batch_slave_1_set(), lsm6dso32_sh_batch_slave_2_get(), lsm6dso32_sh_batch_slave_2_set(), lsm6dso32_sh_batch_slave_3_get(), lsm6dso32_sh_batch_slave_3_set(), lsm6dso32_sh_cfg_write(), lsm6dso32_sh_data_rate_get(), lsm6dso32_sh_data_rate_set(), lsm6dso32_sh_master_get(), lsm6dso32_sh_master_set(), lsm6dso32_sh_pass_through_get(), lsm6dso32_sh_pass_through_set(), lsm6dso32_sh_pin_mode_get(), lsm6dso32_sh_pin_mode_set(), lsm6dso32_sh_read_data_raw_get(), lsm6dso32_sh_reset_get(), lsm6dso32_sh_reset_set(), lsm6dso32_sh_slave_connected_get(), lsm6dso32_sh_slave_connected_set(), lsm6dso32_sh_slv0_cfg_read(), lsm6dso32_sh_slv1_cfg_read(), lsm6dso32_sh_slv2_cfg_read(), lsm6dso32_sh_slv3_cfg_read(), lsm6dso32_sh_status_get(), lsm6dso32_sh_syncro_mode_get(), lsm6dso32_sh_syncro_mode_set(), lsm6dso32_sh_write_mode_get(), lsm6dso32_sh_write_mode_set(), lsm6dso32_steps_reset(), lsm6dso32_tilt_flag_data_ready_get(), lsm6dso32_tilt_sens_get(), and lsm6dso32_tilt_sens_set().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_odr_cal_reg_get()

int32_t lsm6dso32_odr_cal_reg_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Difference in percentage of the effective ODR(and timestamp rate) with respect to the typical. Step: 0.15%. 8-bit format, 2's complement.[get].

Parameters
ctxread / write interface definitions
valchange the values of freq_fine in reg INTERNAL_FREQ_FINE
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1450 of file lsm6dso32_reg.c.

1451{
1453 int32_t ret;
1454
1456 (uint8_t *)&reg, 1);
1457 *val = reg.freq_fine;
1458
1459 return ret;
1460}
#define LSM6DSO32_INTERNAL_FREQ_FINE

References lsm6dso32_internal_freq_fine_t::freq_fine, LSM6DSO32_INTERNAL_FREQ_FINE, and lsm6dso32_read_reg().

Here is the call graph for this function:

◆ lsm6dso32_odr_cal_reg_set()

int32_t lsm6dso32_odr_cal_reg_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Difference in percentage of the effective ODR(and timestamp rate) with respect to the typical. Step: 0.15%. 8-bit format, 2's complement.[set].

Parameters
ctxread / write interface definitions
valchange the values of freq_fine in reg INTERNAL_FREQ_FINE
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1422 of file lsm6dso32_reg.c.

1423{
1425 int32_t ret;
1426
1428 (uint8_t *)&reg, 1);
1429
1430 if (ret == 0)
1431 {
1432 reg.freq_fine = val;
1434 (uint8_t *)&reg, 1);
1435 }
1436
1437 return ret;
1438}

References lsm6dso32_internal_freq_fine_t::freq_fine, LSM6DSO32_INTERNAL_FREQ_FINE, lsm6dso32_read_reg(), and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_reset_get()

int32_t lsm6dso32_reset_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Software reset. Restore the default values in user registers.[get].

Parameters
ctxread / write interface definitions
valchange the values of sw_reset in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1908 of file lsm6dso32_reg.c.

1909{
1911 int32_t ret;
1912
1913 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1914 *val = reg.sw_reset;
1915
1916 return ret;
1917}

References LSM6DSO32_CTRL3_C, lsm6dso32_read_reg(), and lsm6dso32_ctrl3_c_t::sw_reset.

Referenced by init_imuB(), and init_imup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_reset_set()

int32_t lsm6dso32_reset_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Software reset. Restore the default values in user registers[set].

Parameters
ctxread / write interface definitions
valchange the values of sw_reset in reg CTRL3_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 1884 of file lsm6dso32_reg.c.

1885{
1887 int32_t ret;
1888
1889 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1890
1891 if (ret == 0)
1892 {
1893 reg.sw_reset = val;
1894 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_CTRL3_C, (uint8_t *)&reg, 1);
1895 }
1896
1897 return ret;
1898}

References LSM6DSO32_CTRL3_C, lsm6dso32_read_reg(), lsm6dso32_write_reg(), and lsm6dso32_ctrl3_c_t::sw_reset.

Referenced by init_imuB(), and init_imup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lsm6dso32_xl_self_test_get()

int32_t lsm6dso32_xl_self_test_get ( stmdev_ctx_t ctx,
lsm6dso32_st_xl_t val 
)

Linear acceleration sensor self-test enable.[get].

Parameters
ctxread / write interface definitions
valGet the values of st_xl in reg CTRL5_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 2040 of file lsm6dso32_reg.c.

2042{
2044 int32_t ret;
2045
2046 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2047
2048 switch (reg.st_xl)
2049 {
2052 break;
2053
2056 break;
2057
2060 break;
2061
2062 default:
2064 break;
2065 }
2066
2067 return ret;
2068}
@ LSM6DSO32_XL_ST_POSITIVE
@ LSM6DSO32_XL_ST_DISABLE
@ LSM6DSO32_XL_ST_NEGATIVE

References LSM6DSO32_CTRL5_C, lsm6dso32_read_reg(), LSM6DSO32_XL_ST_DISABLE, LSM6DSO32_XL_ST_NEGATIVE, LSM6DSO32_XL_ST_POSITIVE, and lsm6dso32_ctrl5_c_t::st_xl.

Here is the call graph for this function:

◆ lsm6dso32_xl_self_test_set()

int32_t lsm6dso32_xl_self_test_set ( stmdev_ctx_t ctx,
lsm6dso32_st_xl_t  val 
)

Linear acceleration sensor self-test enable.[set].

Parameters
ctxread / write interface definitions
valchange the values of st_xl in reg CTRL5_C
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 2015 of file lsm6dso32_reg.c.

2017{
2019 int32_t ret;
2020
2021 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2022
2023 if (ret == 0)
2024 {
2025 reg.st_xl = (uint8_t)val;
2026 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_CTRL5_C, (uint8_t *)&reg, 1);
2027 }
2028
2029 return ret;
2030}

References LSM6DSO32_CTRL5_C, lsm6dso32_read_reg(), lsm6dso32_write_reg(), and lsm6dso32_ctrl5_c_t::st_xl.

Here is the call graph for this function: