C/C++
文章平均质量分 80
liuxp_008
这个作者很懒,什么都没留下…
展开
-
对于volatile的理解
对于volatile的理解一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义; 另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),转载 2007-08-16 14:07:00 · 456 阅读 · 0 评论 -
理解(*(volatile unsigned char *)0x5F[转]
function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storeit.原创 2007-08-16 14:09:00 · 828 阅读 · 0 评论 -
KILL51
KILL51第一节 绝对地址访问C51提供了三种访问绝对地址的方法: 1. 绝对宏:在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括: CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 具体使用可看一看absacc.h便知 例如: rval=CBYTE[0x0002];指向程序存贮器的0002h地址原创 2007-09-11 16:53:00 · 3027 阅读 · 0 评论 -
51单片机 Keil C 延时程序
51单片机 Keil C 延时程序应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片原创 2007-09-11 16:55:00 · 3467 阅读 · 0 评论 -
用I2C总线传输数据控制继电器工作
用I2C总线传输数据控制继电器工作#include #include #define uchar unsigned char #define uint unsigned int#define dig_num P2#define dig_seg P0#define ADD_t1 0x10#define ADD_t2 0x20#define somenop(); _nop_();_no原创 2007-09-11 16:56:00 · 2797 阅读 · 0 评论 -
如何理解c和c++的复杂类型声明
如何理解c和c++的复杂类型声明曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/原创 2007-09-12 16:45:00 · 2284 阅读 · 0 评论 -
单片机开平方的快速算法
一个单片机开平方的快速算法0推荐因为工作的需要,要在单片机上实现开根号的操作。目前开平方的方法大部分是用牛顿迭代法。我在查了一些资料以后找到了一个比牛顿迭代法更加快速的方法。不敢独享,介绍给大家,希望会有些帮助。 1.原理 因为排版的原因,用pow(X,Y)表示X的Y次幂,用B[0],B[1],...,B[m-1]表示一个序列,其中[x]为下标。 假设: B原创 2008-08-07 13:06:00 · 3012 阅读 · 4 评论