打印

编译无法通过,如何声明2进制???

[复制链接]
589|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2017-8-13 23:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何声明2进制
如:
main.c
void main(void)
{
    OSCICN = _OSCICN_INIT;
}
main.h
#define _OSCICN_INIT 0x83;
如果想方便添加注释:
#define     _OSCICN_INIT    0b10000011; //内部晶振控制
//                            ||    ||____  IFCN0
//                            ||    |_____  IFCN1
//                            ||__________  IFRDY
//                            |___________  IOSCEN
编译无法通过,如何声明2进制???
沙发
liuzaiy|  楼主 | 2017-8-13 23:18 | 只看该作者
明白了自己定义2进制代替
如:
#define B00000000 0x00;
我试过几个
#define 0b00000000 0x00;
#define 0b00000000 0x00
都不行!

看来不行,编译报错:
*** ERROR C100 IN LINE 1 OF BINARY.H: unprintable character 0xA1 skipped
*** ERROR C100 IN LINE 1 OF BINARY.H: unprintable character 0xA1 skipped
*** ERROR C100 IN LINE 1 OF BINARY.H: unprintable character 0xA1 skipped
*** ERROR C100 IN LINE 1 OF BINARY.H: unprintable character 0xA1 skipped
*** ERROR C141 IN LINE 1 OF BINARY.H: syntax error near '#'
*** ERROR C129 IN LINE 1 OF BINARY.H: missing ';' before 'B00000000'

使用特权

评论回复
板凳
ousj| | 2017-8-13 23:19 | 只看该作者

OSCICN = IFCN0 | IFCN1 | IOSCEN ;最好

使用特权

评论回复
地板
zyf部长| | 2017-8-13 23:22 | 只看该作者
vOSCICN = (1<<IFCN0) | (1<<IFCN1) | (1<<IOSCEN) ;也行

使用特权

评论回复
5
liuzaiy|  楼主 | 2017-8-13 23:25 | 只看该作者


#define _BIN(a,b,c,d,e,f,g,h) ((a  <<7)+(b  <<6)+(c  <<5)+(d  <<4)+(e  <<3)+(f  <<2)+(g  <<1)+(h  <<0))
#define _bin _BIN // _bin,_BIN均可

使用特权

评论回复
6
liuzaiy|  楼主 | 2017-8-13 23:26 | 只看该作者


#define _BIN(a,b,c,d,e,f,g,h) ((a  <<7)+(b  <<6)+(c  <<5)+(d  <<4)+(e  <<3)+(f  <<2)+(g  <<1)+(h  <<0))
#define _bin _BIN // _bin,_BIN均可

使用特权

评论回复
7
zyf部长| | 2017-8-13 23:29 | 只看该作者
#define B00000000 0x00
#define B00000001 0x01
#define B00000010 0x02
#define B00000011 0x03
.
.
.
#define B11111111 0xff

这样不行吗?我在KEIL编译通过,我看1楼写的多了个分号。

使用特权

评论回复
8
xxmmi| | 2017-8-13 23:31 | 只看该作者
lz,你C怎么学的?define后面跟 ; 的?

使用特权

评论回复
9
liuzaiy|  楼主 | 2017-8-13 23:33 | 只看该作者

我先自己检查检查吧

使用特权

评论回复
10
leijixiaomile| | 2017-8-21 22:46 | 只看该作者
用宏定义二进制,厉害!群友们都是脑洞大神,请收下俺的膝盖。
#define B00000000 0x00

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝