比如第一条:#define
disi()
_asm{disi}
//禁止总中断
在后续的c语言代码中,如果遇到disi()字符串,编译器会先将其替换为
_asm{disi}
而_asm{}
表示执行大括号内的汇编代码。
例如:
程序代码(示例无实际意义)为:
........
a
=
b
+
c
disi()
b
=
a
+
c
编译器会将其变为:
.......
a
=
b
+
c
_asm
{
disi
}
b
=
a
+
c
.........
然后再进行编译!
_asm
{
disi
}
表示禁止总中断。
程序没有错软件BUG太多
一种情况:
新建工程
把代码重新粘贴进去
再次编译就不会出错
二种情况:
找到变量分配的存储控件,看看是不是使用了不该使用的内存地址
使用C写程序时必须指定变量的存储空间,否则你很容易就把自己玩死了
第一块是声明汇编函数,就可以在接下来的C程序中直接调用这些汇编函数来进行底层硬件 *** 作了。
第二块声明是为引脚命名。R65,R44这些东西,意义并不明确,为了方便编程,为它们命名一些能够清楚反映它们功能的名字。
第三块是声明了一些 *** 作。像P6CR|=0x01,就是一个将P6CR的最低位置一的 *** 作,具体这些 *** 作有何意义需要查你的数据手册,去看看这些引脚或者寄存器每一位的意义是什么。
最后一块不是声明,是定义变量,还是一类比较特殊的变量,只有一个比特。一般是在嵌入式程序编写中作辅助标志用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)