完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
求大神帮忙解决一下!!!
问题1: 我在学习EEPROM时候,有“EECR |=BIT(EEMWE)”这样一个语句,我把它改成了“EECR |=BIT(2)”之后也能实现,但是我把它改成EECR |=0X03就无法实现了,这是为什么? 问题2: 我再看一些书的时候,发现了类似“PORTD ^=_BV(PD7)”和“#define DQ PB3”这样的语句,这种语句好像直接对某一端口位操作了,但是AVR单片不是不能这样直接位操作么? |
|
相关推荐
8个回答
|
|
|
我用过的宏定义方式: #define LED_SET PORTD |= (1 << PD5) //位置高 #define LED_CLR PORTD &= ~(1 << PD5) //位置低 #define LED_COM PORTD ^= (1 << PD5) //位取反 #define LED_R PIND & (1 << PD5) //位读取 通过上面的定义就可以在程序中直接操作I/O了。
最佳答案
|
|
|
|
|
|
你把EECR |=0X03写成EECR |=0X04就明白了。
|
|
|
|
|
|
我去,,,竟然犯这种错误了。谢谢!顺便问下为啥能用PD7 PB3这种类型的? |
|
|
|
|
|
宏定义在C中用得很多,多学多用,单片机C中基本不用位操作指令,有些环境中根本没有,对端口的操作8位一起计算,但编译后的汇编代码是否为位操作,是编译器根据单片类型自动完成,
|
|
|
|
|
zwx_zhang 发表于 2017-2-2 23:26 请问下AVR单片机里面这种PD7 PB3是头文件里面的么? |
|
|
|
|
|
不客气。你去网上找AVR的位操作就知道了,4楼说的不对。 评分 |
|
|
|
|
|
谢谢您了!能帮我看下这个程序么?这个片内的ADC为什么只能执行一次啊?谢谢
|
|
|
|
|
|
发我QQ644523295邮箱吧,在这里下载要积分的。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 15:35 , Processed in 2.841510 second(s), Total 94, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1664