C语言
文章平均质量分 54
奔跑の鳄鱼
这个作者很懒,什么都没留下…
展开
-
分析如何编写一个timer程序(以blt_soft_timer为例)
一.timer的定义timer的功能就是定时,在某一时刻启动一个 timer并设定超时时间,超时时间一到,timer就会回调timeout handler,然后执行你需要的工作。二.timer的时钟来源时钟来源有两种来源a.硬件定时器:优点是时间精确,缺点是功耗高。b.系统滴答时钟:一般为1ms进一次中断,所以定时时间必须大于1ms,优点是功耗低。nrf的app timer使用的RTC1也是来自系统的滴答时钟,timer采用的系统的滴答时钟。三.整体的设计思路3.1. 初始化系统时钟配置系统原创 2021-01-31 00:53:35 · 576 阅读 · 0 评论 -
指针的偏移和数组与指针的结合使用
一.指针的定义类型名 *指针变量名;类型决定指针的大小,可用sizeof运算符去计算大小。二.指针的赋值1.使用地址进行赋值,数据类型与指针类型需一致int iNum = 0x64;int *ptr;ptr = &iNum ;2.利用指针之间相互赋值,指针类型必须一致int *ptr1,*ptr2;*ptr1 = *ptr2;三.指针的本质指针的本质就是指向某个内存地址的标记,指针交换其实就是交换相互指向的内存地址。四.指针的偏移1.指针的单个偏移int array原创 2020-05-24 23:42:59 · 1136 阅读 · 0 评论 -
C语言总结(1)
1.函数返回值:不能是一个局部变量的数组,因为函数结束后会被摧毁,可以使用指针赋值,再作为返回值。2.有一个数组a[12][31] ,a[4]表示a[12][31]二维数组的第五行,sizeof a[4]=(int)*31。3.字符与字符串:单引号括起来代表一个整数,而用双引号括起来的代表一个指针。4.运算符优先级(1)逻辑运算符>关系运算符(2)算术运算符>移位运算符&gt...原创 2019-01-26 17:39:45 · 138 阅读 · 0 评论 -
C语言总结(2)
1.移位算术符:(1)如果被移位的对象为无符号,则空出的位置被0填充。(2)如果被移位的对象为有符号,则空出来的位置即可被0填充也可以被符号位的副本填充。(3)low+high>0,mid=(low+high)>>1;和mid=(low+high)/2;效果是一样的,但前者效率更快。2.rand随机数rand随机数并不真正的随机数,是按指定顺序产生的。srand()为随...原创 2019-01-28 00:05:04 · 110 阅读 · 0 评论 -
使用状态机完成ID卡曼彻斯特解码
一、什么是曼彻斯特编码?曼彻斯特是一种不归零的编码方式,在信号位中电平从低到高跳变表示1,在信号位中电平从高到低跳变表示0。注:编码速率为载波速率的一半二、C语言状态机主要有由事件和状态构成,由事件驱动状态。 | |-------->执行动作action 发生事件 ----->| cur_state | ...原创 2019-02-18 23:42:17 · 2746 阅读 · 0 评论 -
C语言总结(3)
1.printf打印函数(1)%d 按照十进制整型数打印(2)%6d 按照十进制整型数打印,至少 6 个字符宽(3)%f 按照浮点数打印(4)%6f 按照浮点数打印,至少 6 个字符宽(5)%.2f 按照浮点数打印,小数点后有两位小数(6)%6.2f 按照浮点数打印,至少 6 个字符宽,小数点后有两位小数此外,printf 函数还支持下列格式说明:%o 表示八进制数;%x 表示十六进...原创 2019-02-28 23:48:31 · 178 阅读 · 0 评论