TA的每日心情 | 开心 2016-3-22 09:25 |
---|
签到天数: 115 天 连续签到: 1 天 [LV.6]常住居民II
|
继上一次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));
}
}
|
|