完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本人刚开始学ARM,最近看周立功编写的深入浅出ARM7,看了一个例子,就是用LPC2131的P0.7口控制蜂鸣器,里面有一段程序是
#define BEEP 1<<7,往后的程序就直接开始用BEEP了,也没用对BEEP进行定义,我是想问一下原来用单片机的时候如果用P0.7口的话不是要用位定义吗?就是***it beep=P0^7 用LPC2131这个芯片 的话应该也得有类似位定义的程序吧?然后才能用BEEP代表P0口,这样才能对BEEP进行赋值然后用BEEP来控制相应的引脚吧?但是书中给的程序没有对BEEP进行位定义的,是不用定义还是书中的程序没给全啊?希望大神帮忙解答一下,虽然很基础但是我真的不清楚,希望有人帮一下吧!!!! |
|
相关推荐
6个回答
|
|
51是复杂指令集,arm是精简指令集的,原则上都是通过逻辑运算进行位操作的
|
|
|
|
这是书上给出的程序: #include "config.h" #define BEEP 1<<7 int main(void) { PINSEL0=0X00000000; IO0DIR=BEEP; while(1) { IOSET=BEEP; DelayNS(50); IO0CLR=BEEP; DelayNS(50); //延时函数 } return(0); } 我是想问一下难道不用对P0口进行定义吗?为什么可以直接使用BEEP去控制P0口,因为只有把P0口定义为BEEP之后再对BEEP进行赋值这样才能控制P0相应的引脚吗?按书上的程序好像是默认P0口已经定义为了BEEP,是不是还有其他程序已经定义了P0口,只是书上没写还是不用对P0口进行定义? |
|
|
|
这是书上给出的程序:
#include "config.h" #define BEEP 1<<7 int main(void) { PINSEL0=0X00000000; IO0DIR=BEEP; while(1) { IOSET=BEEP; DelayNS(50); IO0CLR=BEEP; DelayNS(50); //延时函数 } return(0); } 我是想问一下难道不用对P0口进行定义吗?为什么可以直接使用BEEP去控制P0口,因为只有把P0口定义为BEEP之后再对BEEP进行赋值这样才能控制P0相应的引脚吗?按书上的程序好像是默认P0口已经定义为了BEEP,是不是还有其他程序已经定义了P0口,只是书上没写还是不用对P0口进行定义? 大家帮个忙吧,解答一下呗 |
|
|
|
虽然我没用过也不了解这款ARM,但是从你的程序可以看出PINSEL0=0X00000000;是为了定义P0的寄存器地址,#define BEEP 1<<7 意思是1左移7位,也就是第七位置1嘛,然后往寄存器写1,即p0.7=1
|
|
|
|
不好意思看错了,我说怎么那么别扭,第一句错了,#define BEEP 1<<7 意思是1左移7位,也就是第七位置1嘛,然后往寄存器写1,即p0.7=1,至于PINSEL0=0X00000000;可能是为了清零吧,这得看它的手册,你看看 IOSET和IO0CLR怎么定义的
至于你说的定义P0,我没有看出来你想表达什么 |
|
|
|
恩,谢谢了,我现在知道了,原来我一直以为是beep 直接控制p0口呢,因为单片机上就是这样的,单片机上没有控制p0的寄存器,直接用beep就可以控制p0了,arm不是,它是用beep 往p0所对应的寄存器中写入数据进而改变p0口输出的电平高低。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
361 浏览 0 评论
1378 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1312 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
743 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
1139 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 06:03 , Processed in 0.603886 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号