2011-12-28 23 views
0

私はダウン私はここから読み出されたメモリの内容から配列を埋めることができますどのようにメモリからコンテンツをアレイに書き込む方法は?

unsigned char pat6[8] = {0x3C,0xFF,0xC3,0xC3,0xC3,0xC3,0xFF,0x3C,}; 

以下の配列を持っていますか?

unsigned char read_byte()   //reading from EEPROM serially 
{ 
    unsigned int i; 
    sda=1; 
    reead=0; 
    for(i=0;i<8;i++) 
    { 
     reead=reead<<1; 
     scl=1; 
     _nop_(); 
     _nop_(); 
     if(sda==1) 
      reead++; 
     scl=0; 
    } 
    sda=0; 
    return reead;    //Returns 8 bit data here 
}  

を私は .....配列を表示するために使用され、私はシリアルメモリからの配列内のデータを記入したいのおかげ

void display_clear(unsigned char pattern[])//, int num) 

{ 
    unsigned int cnt, col, row; //, num ; 


    row = 1; 
      //for (cnt = num*8 ; cnt < (num*8+8) ; cnt ++) //display pattern each character 
      for (cnt = 0 ; cnt < 8 ; cnt ++) //display pattern each character 
      { 
       P3 = ~pattern[cnt]; 
       P1 = ~row; 

       delay_ms(100) ; // delay of 1 ms 
       row = row<<1; 


      } 

     row = 0x00; 

} 

友達、上記の関数、Iこのようにしようとしました:

//begin of read 2048 byte from serial memory AT24C16 

    for (i=0;i<2048;i++) 
     { 
      j[i]=read_byte(); 
      aknowledge(); 
     } 

    //end of read 2048 byte from serial memory AT24C16 

エラー:

24C16_RW.C(229):エラーC216:非配列またはあまりにも多くの次元

上添字他の方法はありますか?

おかげ

+1

「scl」とは何ですか?それはどこに宣言されていますか? –

答えて

0

私は私が正しくあなたの質問を理解している場合知らないが、私は声明のために働くだろうとのことだと思います。

for (i=0, i<8,i++) 
pat6[i]=read_byte(); 

読み込み関数がどのようにして順次読み込むかを知る方法です。私はその実装では、配列全体が同じバイトで満たされると思います。

+0

ya、私はどのようにread_byteを配列に順番に入れることができますか? –

0

以下の擬似コードに従ってください。

function write_into_array() 
{ 
    for i=0 to 8 { 
     array[i] = value-to-be-stored; 
    } 
} 

ただし、コードでは、scl変数が宣言されていますか?またはpat6[]配列のようなグローバル変数ですか?

OTOHの場合は、最後に,を取り除く必要があります。

unsigned char pat6[8] = {0x3C,0xFF,0xC3,0xC3,0xC3,0xC3,0xFF,0x3C,}; 
関連する問題