荤新企为CCS峰荤

A

adnan012

Guest
我要与峰彩色LCD控制器。下面是一段代码
, 这是我从一个网站需要。什么是第2和第4行的功能。HIGH_COLOR用于设置LCD彩色和12位或16位宽。

#ifdef HIGH_COLOR

#定义的RGB(红,绿,二)(((研发0xF8)“”8 |((克&0xFC)“”3)|((二&0xF8)“”3))

#无定义的RGB(0x00,0x40,0x00)
#其他
#定义的RGB(红,绿,二)((研发0xE0)|((克&0xE0)“”3)|(二“”6))

#无定义的RGB(0x00,0x20,0x00)
#endif

 
在一段代码是有条件的编译代码...在编译时(不运行时),编译器检查是否某处源。c有一个#确定HIGH_COLOR(例如:#定义HIGH_COLOR真)
如果在这种情况下
, 编译器将编译2号线和3号线否则编译器将编译5号线和line6

#定义的RGB(红,绿,二)(((研发0xF8)“”8 |((克&0xFC)“”3)|((二&0xF8)“”3))

#定义的RGB(红,绿,二)((研发0xE0)|((克&0xE0)“”3)|(二“”6))

我认为这些行定义一个“funcion”所谓的RGB这需要3个参数(红,绿,二)并返回他们(1 8位廉政相结合
, 我认为)。因此
, 每次看到编译器的源代码
, 以RGB函数调用计算结果只用3个参数
, 把源代码中的这一结果后(后本预编译阶段
, 编译器将真正编译源代码-注意该scource不会被修改,它只是一个虚拟修改
, 您知道
, 但看不到)

无只是一个constat ...它的值是计算采用的是“要求”到RGB冰-

 
#定义的RGB(红,绿,二)(((研发0xF8)“”8 |((克&0xFC)“”3)|((二&0xF8)“”3))

这条线被编译时的高颜色条件为真
的R值,首先是按位相与同0xF8十六进制值,然后它被转移到左侧8倍
同样的变量g是相与与0xFC,左转向3次
,变量b是相与与0xF8,但向右移动
那么所有的值或运算

#定义的RGB(红,绿,二)((研发0xE0)|((克&0xE0)“”3)|(二“”6))

这条线将被编译如果u没有定义代码的乌拉圭回合开始HIGH_COLOR

 

Welcome to EDABoard.com

Sponsor

Back
Top