查看: 890|回复: 0

SAM4L-EK IO对比学习

[复制链接]
  • TA的每日心情
    开心
    2016-3-22 09:25
  • 签到天数: 115 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2016-4-5 13:13:12 | 显示全部楼层 |阅读模式
    分享到:
    继上一次Jlink驱动安装成功之后,SAM4L-EK开发板的调试、下载工具就可以正常使用了。

    如上图,驱动成功安装之后,能在“设备管理器”找到以上两项,由于笔记本坏了,新本使用的是win10
    64位家庭版,因此我重新安装了Jlink驱动。
    (注意:在官网www.segger.com需要下载win10 64位版本的驱动,否则会出现兼容问题)
    IO操作无非输入、输出、模式设置,本次程序设置的是读取开发板按键的电平,然后将电平赋值给
    开发板LED0,从原理图来看,LED0高电平亮、低电平灭。同时由于LED0没有外接上拉电阻,IO
    模式设置为内部上拉的方式。
    对比SAM4L与XMEGA的IO模式,有些许不同。XMEGA有上拉、下拉、推拉、线与(开漏)、线或;
    而SAM4L是上拉、下拉、滤波、强输出,其实质类同。
    测试的时候刻意设置了强输出、弱输出,对比LED灯的亮度,肉眼不能分辨出明显的区别。如果用
    万用变实测,应该还是有不同的。在需要强驱动输出时,可以设置SAM4L强输出模式。
    ASF中对应的4种模式宏定义如下:
    #define IOPORT_MODE_PULLUP              (1 << 3) /*!< Pull-up */
    #define IOPORT_MODE_PULLDOWN            (1 << 4) /*!< Pull-down */
    #define IOPORT_MODE_GLITCH_FILTER       (1 << 6) /*!< Glitch filter */
    #define IOPORT_MODE_DRIVE_STRENGTH      (1 << 7) /*!< Extra drive strength */
    测试用代码如下:
    #define BTN_PORT2
    #define BTN_MSK(1 << 3)
    #define LED_PORT2
    #define LED_MSK(1 << 10)
    int main (void)
    }
    sysclk_init();
    ioport_init();
    /* 按键PC3,LED灯PC10 */
    ioport_set_port_dir(BTN_PORT,BTN_MSK,IOPORT_DIR_INPUT);
    ioport_set_port_mode(BTN_PORT,BTN_MSK,IOPORT_MODE_PULLUP);
    ioport_set_port_dir(LED_PORT,LED_MSK,IOPORT_DIR_OUTPUT);
    while(true) {
    ioport_set_port_level(LED_PORT,LED_MSK,ioport_get_port_level(BTN_PORT,BTN_MSK));
    }
    }
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 06:16 , Processed in 0.102980 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.