跑一下SAM4N例程(九):bitband

[复制链接]
 楼主| ddllxxrr 发表于 2015-3-6 20:26 | 显示全部楼层 |阅读模式
这个bitband,我早就对其有点意见哈,它的终止是用一个大的字节来应映一个比特。我之所以对它有意见是我觉得这样做
有点浪费,当然这是对ARM有意见,其它家厂都得照做。

处理器包括两个bit-band范围,SRAM的低1MB和外设存贮区。在bit_band区里应射每一个字到相应的内存中的比特位。



在Atmle Studio6.2开发环境中,插入开发板则自动弹出该板的界面:



bit_band区地宏在这里:

  1. #define BITBAND_ALIAS_ADDRESS(addr, bit) \
  2.     ((volatile uint32_t*)((((uint32_t)(addr) & 0xF0000000) + 0x02000000) \
  3.                           +((((uint32_t)(addr)&0xFFFFF)*32)\
  4.                           +(  (uint32_t)(bit)*4))))
而点灯是在下边:
  1. while (1) {
  2.                 /* Toggle LED with bit banding. */
  3.                 if (*BITBAND_ALIAS_ADDRESS(&LED0_PIO->PIO_ODSR, uc_led_bit)) {
  4.                         /* Turn on the LED. */
  5.                         *BITBAND_ALIAS_ADDRESS(&LED0_PIO->PIO_CODR, uc_led_bit) = 1;
  6.                 } else {
  7.                         /* Turn off the LED. */
  8.                         *BITBAND_ALIAS_ADDRESS(&LED0_PIO->PIO_SODR, uc_led_bit) = 1;
  9.                 }
本程序的运行效果同上次一样也是一闪一闪的,但控制原理不一样,这次是bit_band控制。

本帖子中包含更多资源

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

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

本版积分规则

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

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

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