打印
[ZLG-ARM]

这个具体怎么用 LED 1<<16

[复制链接]
1875|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duck_2008|  楼主 | 2007-1-16 22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2007-1-16 23:27 | 只看该作者

这只能表示是第几位,而不能表示是哪个口的

所以我经常另外再定义宏,例如:

/*
  LED.H file
  LED基本操作——开LED,关LED
  作者:Computer-lov
  建立日期:2006-3-19
  修改日期:2006-4-25
  最后修改时间:2006-08-25
  版本:V1.0
  版权所有,盗版必究。
  Copyright(C) Computer-lov 2006-2016
  All rights reserved
*/

#ifndef __LED_H__
#define __LED_H__

#define LED1    18     //P1.18
#define LED2     19     //P1.19
#define LED3    20     //P1.20
#define LED4    21     //P1.21
#define LED5    22     //P1.22
#define LED6    23     //P1.23
#define LED7    24     //P1.24
#define LED8    25     //P1.25


//关LED   
#define OFF_LED1()    IO1SET=(1<<(LED1))
#define OFF_LED2()    IO1SET=(1<<(LED2)) 
#define OFF_LED3()    IO1SET=(1<<(LED3)) 
#define OFF_LED4()    IO1SET=(1<<(LED4)) 
#define OFF_LED5()    IO1SET=(1<<(LED5)) 
#define OFF_LED6()    IO1SET=(1<<(LED6)) 
#define OFF_LED7()    IO1SET=(1<<(LED7)) 
#define OFF_LED8()    IO1SET=(1<<(LED8)) 


//开LED1
#define ON_LED1()    IO1CLR=(1<<(LED1))
#define ON_LED2()    IO1CLR=(1<<(LED2)) 
#define ON_LED3()    IO1CLR=(1<<(LED3)) 
#define ON_LED4()    IO1CLR=(1<<(LED4)) 
#define ON_LED5()    IO1CLR=(1<<(LED5)) 
#define ON_LED6()    IO1CLR=(1<<(LED6)) 
#define ON_LED7()    IO1CLR=(1<<(LED7)) 
#define ON_LED8()    IO1CLR=(1<<(LED8))
 
 /*使能LED1,即将LED1对应的口设置为输出*/
#define EN_LED1()  {IO1DIR |=(1<<LED1);OFF_LED1();}      
#define EN_LED2()  {IO1DIR |=(1<<LED2);OFF_LED2();}
#define EN_LED3()  {IO1DIR |=(1<<LED3);OFF_LED3();}
#define EN_LED4()  {IO1DIR |=(1<<LED4);OFF_LED4();}
#define EN_LED5()  {IO1DIR |=(1<<LED5);OFF_LED5();}
#define EN_LED6()  {IO1DIR |=(1<<LED6);OFF_LED6();}
#define EN_LED7()  {IO1DIR |=(1<<LED7);OFF_LED7();}
#define EN_LED8()  {IO1DIR |=(1<<LED8);OFF_LED8();}


/*LED状态*/
#define LED1STAT (IO1PIN &(1<<(LED1)))
#define LED2STAT (IO1PIN &(1<<(LED2)))
#define LED3STAT (IO1PIN &(1<<(LED3)))
#define LED4STAT (IO1PIN &(1<<(LED4)))
#define LED5STAT (IO1PIN &(1<<(LED5)))
#define LED6STAT (IO1PIN &(1<<(LED6)))
#define LED7STAT (IO1PIN &(1<<(LED7)))
#define LED8STAT (IO1PIN &(1<<(LED8)))

#endif

使用特权

评论回复
板凳
hotpower| | 2007-1-16 23:57 | 只看该作者

IO0SET=(1<<(LED1))就搞到别人家去了~~~

使用特权

评论回复
地板
rpqhy| | 2007-1-17 13:02 | 只看该作者

菜鸟的疑问~~~~

{IO1DIR |=(1<<LED1);
OFF_LED1();} 《——--这个不用也行吧,使能后还要关灯??
(能不能说说这个用法的原因?保守用法吗?)

使用特权

评论回复
5
computer00| | 2007-1-17 22:30 | 只看该作者

看你的要求了。如果一使能它,就亮了,恐怕不大好.

使用特权

评论回复
6
zlgarm| | 2007-1-18 08:25 | 只看该作者

re:

比如LED =1<<16:
当执行IO0SET = LED 时,表示将P0.16的脚置为高电平,其他脚保持不变。
当执行IO0CLR = LED时,表示将P0.16脚置为低电平,其他脚保持不变。

使用特权

评论回复
7
duck_2008|  楼主 | 2007-1-19 20:50 | 只看该作者

谢谢!

使用特权

评论回复
8
duck_2008|  楼主 | 2007-1-19 21:51 | 只看该作者

如果想用在P1口上改怎么设置呢?

如果用在P1口上如何使用呢?

使用特权

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

本版积分规则

4

主题

5

帖子

1

粉丝