5705|12

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp2553的灯的中断和轮询控制 [复制链接]

第一种是轮询控制;
#include  
void delay(int);
void main()
{WDTCTL=WDTPW+WDTHOLD;  //关闭看门狗
P1DIR|=BIT0+BIT6;      //设置P1.0和P1.6为输出
P1OUT|=0x41;
P1DIR&=~BIT3;          //设置P1.3为输入
  P1REN|=BIT3;           //设置上拉电阻
  P1OUT|=BIT3;           //这一句得加
  for(;;)
    {
        if((P1IN & BIT3) == 0)
        {
            delay(10);   //消抖
            if((P1IN & BIT3) == 0)
            {
               P1OUT ^= BIT0 | BIT6;  //取反
            }
            while((P1IN & BIT3)==0);  //等待松开按键
        }
    }
}


void delay(int i)   //延时函数,具体多少没计算
{int j,k;
  for(j=0;j<110;j++)
    for(k=0;k }

第二种是中断;
#include
void key_init();
void main()
{WDTCTL=WDTPW+WDTHOLD;  //关闭看门狗

key_init();         
P1DIR|=BIT6;        //设置P1.6为输出,带下句为亮
P1OUT|=BIT6;
_EINT();           //开总中断
   while(1);
}

void key_init()
{  P1DIR&=~BIT3;    //设置P1.3为输入
    P1REN|=BIT3;     //设置上拉
    P1OUT|=BIT3;
    P1IES|=BIT3;     //高电平到低电平有效,即下降沿
    P1IFG&=~BIT3;    //清除中断标志,带上这句最好
    P1IE|=BIT3;
         
}

#pragma vector=PORT1_VECTOR             //中断
__interrupt void port1(void)
{  if(P1IFG&BIT3)
     {P1OUT^=BIT6;
     P1IFG&=~BIT3;   //这句清除中断标志必须带上
    }
   else
      P1IFG=0X00;
}
呵呵,偶是新手,欢迎大大拍砖指导,也希望和我一样的菜鸟能不断进步,

最新回复

那什么时候必须加呢  详情 回复 发表于 2012-7-29 09:54
 
点赞 关注

回复
举报

547

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
可以去尝试看看。。
 
个人签名嵌入式培训www.51great.org
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
P1OUT|=BIT3;           //这一句得加
LZ新手求教一下这是什么意思?检测按键的思路不是输入么。设置输出是什么意思?配合前面的一个上下拉使能指令使其强制上拉么?新手不怎么明白望告知一下。

点评

在用户手册第337页最上面有句话:if the pin\'s pullup/pulldown resistor is enabled,the corronsponding in the PxOUT register selects pullupor down Bit 0: pulldown; Bit 1: pullup 应该是这句话  详情 回复 发表于 2012-7-27 18:34
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 doye 的帖子

在用户手册第337页最上面有句话:if the pin's pullup/pulldown resistor is enabled,the corronsponding  in the PxOUT register selects pullupor down
     Bit 0:  pulldown;  Bit 1: pullup   
应该是这句话的

点评

:) 谢谢LZ哈。手册都没好好看,我面壁去,:cold:  详情 回复 发表于 2012-7-28 11:41
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

5
 
我这两天也一直没弄懂这个P1REN,感觉有没ren貌似没有什么变化,

点评

记得上拉、下拉是决定了默认电平的。上拉低电平有效,下拉高电平有效。个人理解,不知道对不对,希望大家指正  详情 回复 发表于 2012-7-28 11:18
这个P1REN当然有用了,在你配置成输出模式的时候,比如说下面我要使用该引脚作为上升沿触发中断的时候,那么你就需要先将该GPIO 下拉,然后等待一个高电平来触发中断。下降沿触发也类似的:)  详情 回复 发表于 2012-7-28 11:15
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(高级)

6
 

回复 5楼 sjwh 的帖子

这个P1REN当然有用了,在你配置成输出模式的时候,比如说下面我要使用该引脚作为上升沿触发中断的时候,那么你就需要先将该GPIO 下拉,然后等待一个高电平来触发中断。下降沿触发也类似的

点评

那为什么后面要紧跟P1OUT拉高呢,  详情 回复 发表于 2012-7-28 15:55
懂了:titter:  详情 回复 发表于 2012-7-28 15:38
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 5楼 sjwh 的帖子

记得上拉、下拉是决定了默认电平的。上拉低电平有效,下拉高电平有效。个人理解,不知道对不对,希望大家指正

点评

我觉得应该是这样:)  详情 回复 发表于 2012-7-28 15:38
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 4楼 AISEED 的帖子

谢谢LZ哈。手册都没好好看,我面壁去,
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 7楼 HEYsir 的帖子

我觉得应该是这样
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 6楼 index219 的帖子

懂了
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 6楼 index219 的帖子

那为什么后面要紧跟P1OUT拉高呢,

点评

在这里的这句话是可以不用加的  详情 回复 发表于 2012-7-29 09:18
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(高级)

12
 

回复 11楼 sjwh 的帖子

在这里的这句话是可以不用加的
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

13
 
那什么时候必须加呢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表