static u16 tx_s_cnt = 0; int get_sine_data(u16 *s_cnt, s16 *data, u16 points, u8 ch) { while (points--) { if (*s_cnt >= 441) { *s_cnt = 0; } *data++ = tsin_441k[*s_cnt]; if (ch == 2) { *data++ = tsin_441k[*s_cnt]; } (*s_cnt)++; } return 0; }
时间: 2024-04-03 07:34:58 浏览: 122
16位数据取高其8位,低8位,高4位,低4位数据,并重新组合
这段代码是一个获取正弦波数据的函数,函数名为 get_sine_data。其中,函数入参包括一个指向 u16 类型变量的指针 s_cnt,一个指向 s16 类型变量的指针 data,一个 u16 类型变量 points 和一个 u8 类型变量 ch。函数中用 while 循环来获取 points 个正弦波数据点,并将其存储在 data 数组中。
在函数体内部,先判断 s_cnt 的值是否大于等于 441,如果是,则将 s_cnt 的值重置为 0。然后,将 tsin_441k 数组中下标为 s_cnt 的元素赋值给 data 数组中的一个元素。如果 ch 等于 2,则再将 tsin_441k 数组中下标为 s_cnt 的元素赋值给 data 数组中的下一个元素。最后,将 s_cnt 的值加 1,并返回 0。
阅读全文