一.单个信号输入输出
子函数接口参数需要定义成指针,输入的实际变量不要定义成指针。
示例:将float去整并输出后几位。
void float2uint16(float *a,uint16 *b)
{
int c=(int)(*a);
*b=((c%10000)/1000)*4096+((c%1000)/100)*256+((c%100)/10)*16+c%10;
}
调用:取实际变量地址为入参,不要直接定义指针变量。
int main(void)
{
float a=1234.1;
uint16 b;
float2uint16(&a,&b);
printf("%d",b);
return 0;
}
二.矩阵运算函数
编写矩阵子函数运算时,要注明矩阵大小,不然无法确定硬件运算时间及资源使用。
示例:矩阵33*33
void MatrixMul33_33(data_type a[3][3],data_type b[3][3],data_type res[3][3])
{
// Iterate over the rows of the A matrix
Row: for(int i = 0; i < 3; i++) {
// Iterate over the columns of the B matrix
Col: for(int j = 0; j < 3; j++) {
res[i][j] = 0;