2425|0

1891

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

SAMR21 LED和按键 [复制链接]

SAMR21 LED和按键
SAMR21 Xplained Pro开发板中有一个用户按键和一个用户LED灯。硬件连接图如下:

4-1LED&KEY电路图
可以看到用户按键是和PA28相连,然后另一端跟GND连接。
用户LED是和PA19相连,LED的另一端和3.3V相连。当PA19給低电平时点亮,高电平是熄灭。
基本原理很简单,现在打开AtmelStudio新建一个例子。

4-2Example程序
上面红色圈圈中的这个例子是让LED闪烁的延时函数,下载到开发板中,即可看到LED灯闪烁起来。
我们稍作修改,让按键来控制LED灯的亮灭,当按下按键时,LED点亮,当松开按键时LED熄灭。
在定义中可以看到
#define BUTTON_0_PIN              SW0_PIN
#define SW0_PIN                   PIN_PA28
/** \nameLED0 definitions
*  @{ */
#define LED0_PIN                  PIN_PA19
#define LED0_ACTIVE               false
#define LED0_INACTIVE             !LED0_ACTIVE
#define LED0 LED0_PIN
主要程序如下:
#include
int main(void)
{
       system_init();
       delay_init();
       struct port_config pin;
       port_get_config_defaults(&pin);
       pin.direction = PORT_PIN_DIR_OUTPUT;
       port_pin_set_config(LED0_PIN, &pin);
       port_pin_set_output_level(LED0_PIN, LED0_INACTIVE);
       port_pin_get_input_level(BUTTON_0_PIN);
      
       while(1)
       {
          if(port_pin_get_input_level(BUTTON_0_PIN))
          {
            port_pin_set_output_level(LED0_PIN, LED0_INACTIVE);
          }
          else
          {
               port_pin_set_output_level(LED0_PIN, LED0_ACTIVE);
          }   
       }
       while (true) {
              for (int i = 0; i < 5; i++) {
                     port_pin_toggle_output_level(LED0_PIN);
                     delay_s(1);
              }
              for (int i = 0; i < 50; i++) {
                     port_pin_toggle_output_level(LED0_PIN);
                     delay_ms(100);
              }
              for (int i = 0; i < 5000; i++) {
                     port_pin_toggle_output_level(LED0_PIN);
                     delay_cycles(100);
              }
       }
}

点赞 关注
个人签名
分享铸就美好未来。。。




 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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