- 博客(4)
- 收藏
- 关注
原创 C/C++内存对齐规则
char c2;int i;int i;char c2;int main()在上述代码中,输出结果并不是6,而是8和12:原因在于结构体受到内存对齐的影响。在C语言中,结构体有如下对齐规则:1.结构体的第一个成员对齐到和结构体变量起始位置偏移量为0的地址处2.其他成员要对齐到对齐数的整数倍的地址处对齐数=min{编译器的默认对齐数,该成员变量}
2025-03-15 16:14:15
677
原创 中断原理与Arduino
无论是在现代PC中,还是在嵌入式系统中(如Arduino,51单片机,还是stm32),中断都是重要的概念,此文我将介绍中断的原理与其在Arduino中的应用。
2025-01-31 21:21:41
869
原创 (Arduino入门)用电位器控制伺服电机
其中, value 是要转换的值, fromLow 和 fromHigh 指定了 value 原来的范围, toLow 和 toHigh 指定了要转换到的目标范围。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023(最大值是2的10次方-1)0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。Arduino的GND,2接到模拟输入引脚,此时模拟引脚测到的就是电阻R(1-2)上的电压。其有三根线,红色和灰色分别接5V和GND,黄色的是PWM信号线。
2025-01-26 21:55:40
242
原创 计算机是如何运行指令的?
(1) PC(Program Counter,程序计数器)存放了第一条指令的内存地址,它会向MAR(Memory Address Register,地址寄存器)发送该指令的地址,使MAR存放0地址。第一条指令结束后,ACC中存放了2,PC会自动+“1”,这个“1”是指一条指令的的字节数,不是一个字节,如果采用变长指令字结构,这个“1”是不固定的。(3)寻得的指令存放在MDR(Memory Data Register,数据寄存器)中。(5)IR将操作码送到CU(控制单元),CU分析后得知,这是取数指令。
2025-01-24 17:11:05
247
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人