数据结构与算法
数据结构与算法
不咸不要钱
逝者如斯夫,不舍昼夜
展开
-
判断是否是2的N次方
int16_t fun(uint32_t x){ if((x&(x-1)) == 0) { return 1; //是2的N次方 } return 0; //不是2的N次方}原创 2019-12-10 15:00:48 · 16924 阅读 · 0 评论 -
双向链表
双向链表1.创建一个双向链表的结构体,里面有两个指针,可以指向前后两个相邻的节点/*! *\brief 双向链表节点结构体 */typedef struct list_node{ struct list_node* next; struct list_node* previous;}list_item_t;2.双向链表初始化/*! * \brie...原创 2019-12-08 21:39:42 · 16386 阅读 · 0 评论 -
简单的FIFO
在一些高级语言中(C++、C#等)都内置了FIFO的数据类型,在使用C语言开发嵌入式设备时,有些时候可能会用到FIFO数据结构。原创 2020-05-27 18:18:38 · 4108 阅读 · 0 评论 -
简单的一阶低通滤波器
#include "LowPassFilter.h"#define M_2PI 6.283185307179586f/**设置低通滤波的频率sample_freq 和 截止频率cutoff_freq*/void LowPassFilter_Init(lowFilter_t *filter, float sample_freq, float cutoff_freq){ filter->sample_freq = sample_freq; filter->cutoff原创 2020-07-03 18:51:56 · 4021 阅读 · 1 评论 -
PID控制器
位置式PID公式增量式PID公式位置式和增量式区别两者参数调节好之后,可以达到相同的效果增量式PID输出为增量 即本次输出 = 上次输出 + 增量式PID输出的增量,当系统出现异常后,增量式会保持当前值附近。pid.h#ifndef _PID_H_#define _PID_H_#include <stdint.h>typedef struct{ float kp; //P float原创 2020-06-11 18:40:34 · 3160 阅读 · 0 评论