[Atmel] 跑一下SAM4N例程(八):IO操作1

[复制链接]
715|0
 楼主| ddllxxrr 发表于 2015-3-5 15:08 | 显示全部楼层 |阅读模式
在Atmel Studio6.2开发环境中,直接插入开发板,则开发板信息直接弹出来。


打开ioport_example1例程。

可以看出:晶振是在conf_clock.h中定义:
  1. // ===== PLL0 (A) Options   (Fpll = (Fclk * PLL_mul) / PLL_div)
  2. // Use mul and div effective values here.
  3. #define CONFIG_PLL0_SOURCE          PLL_SRC_MAINCK_8M_RC
  4. #define CONFIG_PLL0_MUL             25
  5. #define CONFIG_PLL0_DIV             1

  6. // ===== Target frequency (System clock)
  7. // - Internal RC frequency: 8MHz
  8. // - System clock source: PLLA
  9. // - System clock prescaler: 2 (divided by 2)
  10. // - PLLA source: 8M_RC
  11. // - PLLA output: 8M_RC * 25 / 1
  12. // - System clock: 8M_RC * 25 / 1 / 2 = 100MHz

  13. #endif /* CONF_CLOCK_H_INCLUDED */
我认为这个晶振可以不用变,就是说在以后的自己写程序或开发板,可以照搬过来,就象模板一样。


管脚的方向配置在主函数的这里:
  1. /* Set output direction on the given LED IOPORTs */
  2.         ioport_set_port_dir(EXAMPLE_LED_PORT, EXAMPLE_LED_MASK,
  3.                         IOPORT_DIR_OUTPUT);
而EXAMPLE_LED_PORT和EXAMPLE_LED_MASK是在:
conf_example.h中
  1. #ifndef CONF_EXAMPLE_H_INCLUDED
  2. #define CONF_EXAMPLE_H_INCLUDED

  3. /* Using LED0 SAM4N-XPLAINED-PRO (PB14) */
  4. #define EXAMPLE_LED_PORT (1)
  5. #define EXAMPLE_LED_MASK ((1 << 14))

  6. /* Using button SW0 on SAM4N-XPLAINED-PRO (PA30) */
  7. #define EXAMPLE_BUTTON_PORT (0)
  8. #define EXAMPLE_BUTTON_MASK ((1 << 30))

  9. #endif /* CONF_EXAMPLE_H_INCLUDED */


IOPORT_DIR_OUTPUT是在ioport.h中定义:

  1. /** \brief IOPORT pin directions */
  2. enum ioport_direction {
  3.         IOPORT_DIR_INPUT,  /*!< IOPORT input direction */
  4.         IOPORT_DIR_OUTPUT, /*!< IOPORT output direction */
  5. };


而主函数 如下:

可以看出,在主函数里就是定义了LED的方向后,不断地转换电平,即高变低低变高,给我的感觉就是开发板的默认程序:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部