摘要: 本来这个是只应该出现在运用cpp编程的工程中的,但是,就算是单片机编程,都已经会看到这个了,所以提出来解释一下。 条件编译,属于c/c++共有的,但是由于在有些场合,在c++代码内嵌c语言能使编程更加便利。 使用c语言编译器gcc编译下面代码: 预编译(gcc -E)之后是这样的: 这样可以确定在C 阅读全文
posted @ 2017-04-16 21:52 Crystal_Guang 阅读(6306) 评论(0) 推荐(0) 编辑
摘要: volatile译为:易变的。这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地址中去读取变量的数据,但正因为这样,才是保持了变量的原样,因为变量已经发生改变了,你却操作的是没有变化时的数据,这 阅读全文
posted @ 2017-04-16 17:07 Crystal_Guang 阅读(19404) 评论(0) 推荐(4) 编辑
摘要: 这里要用到一定的模电知识。电容两端电压不能突变,电感两端电流不能突变。这里利用了电容的放电延时实现硬件消抖。按键按下会有抖动,波形有毛刺,使得高低电平显现不明显,而按键按下时,电容放电一下,马上又被充电,此时电容两端的电压不会突然变化,这个延时时间恰好可以达到消抖作用。 这里需要使用一个固件库函数: 阅读全文
posted @ 2017-04-16 15:41 Crystal_Guang 阅读(2180) 评论(0) 推荐(0) 编辑
摘要: .内存中字的存储 在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个连续地址的内存单元来存放。8086CPU是小端机,低地址存低位,高地址存高位。 我们提出字单元的概念:字单元,即存放一个16位数据的内存单元,有两个连续的内存单元组成。在以后的课程中,我们将起始地址为N 阅读全文
posted @ 2017-04-16 10:17 Crystal_Guang 阅读(214) 评论(0) 推荐(0) 编辑