打印

跑一下SAM4N例程(九):bitband

[复制链接]
647|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这个bitband,我早就对其有点意见哈,它的终止是用一个大的字节来应映一个比特。我之所以对它有意见是我觉得这样做
有点浪费,当然这是对ARM有意见,其它家厂都得照做。

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



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



bit_band区地宏在这里:

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

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

2399

主题

6963

帖子

68

粉丝