Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7485

CC2541怎样快速提取数组数据?请问怎样操作?

$
0
0

      最近在用cc2541与ws2812b通信。通信协议是0.4us的高电平接0.85us的低电平表示0码,0.85us的高电平接0.4us的低电平表示1码,50us低电平表示结束。最终通过蓝牙协议栈传输数据。

      下面是代码:

for(i = 0; i<3 ; i++)
{
    for(j=0;j<8;j++)
    {
        if(table[i][j] == 0)
        {
            PIN = 1; 
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");

            PIN=0;

            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");
        } 
           // 1码
       else
       {
            PIN = 1;
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");asm("NOP");asm("NOP");
            asm("NOP");

           PIN=0; 

           asm("NOP");asm("NOP");asm("NOP");
           asm("NOP");asm("NOP");asm("NOP"); //6个NOP是400ns
           } 
      }
}

通过示波器发现,低电平持续时间很长,这一定是从数组中取数据太慢造成的,在IAR中,data关键字不能使用,该怎样能更快取数据作比较呢。本人刚出学校,小白一个,望大家指点一二。


Viewing all articles
Browse latest Browse all 7485

Trending Articles