도와주세요!!
글 수 15,339
2002.06.21 14:29:12 (*.179.132.104)
6698
귀사의 EZ board를 구입하여 실험하고 있는 초보 입니다.
ezflash 코드 중에 이해가 안되는 부분이 있어 질문 드립니다.
답답한 질문일지 모르지만 성실한 답변 부탁 드립니다.
주소를 설정하는 부분인데...
27회 shift하는 것에서 부터 전제 적으로 이해가 안가네요...
가능하다면 자세한 설명을 부탁 드립니다...
void SA1110_SetAddress( DWORD vAddress )
{
int loop;
WSA1110_CELLs[ CTBF_CS0 ] = HIGH;
WSA1110_CELLs[ CTBF_CS1 ] = HIGH;
WSA1110_CELLs[ CTBF_CS2 ] = HIGH;
WSA1110_CELLs[ CTBF_CS3 ] = HIGH;
WSA1110_CELLs[ CTBF_CS4 ] = HIGH;
WSA1110_CELLs[ CTBF_CS5 ] = HIGH;
switch( ( vAddress >> 27 ) & 0x7 )
{
case 0 : WSA1110_CELLs[ CTBF_CS0 ] = LOW; break;
case 1 : WSA1110_CELLs[ CTBF_CS1 ] = LOW; break;
case 2 : WSA1110_CELLs[ CTBF_CS2 ] = LOW; break;
case 3 : WSA1110_CELLs[ CTBF_CS3 ] = LOW; break;
case 4 : WSA1110_CELLs[ CTBF_CS4 ] = LOW; break;
case 5 : WSA1110_CELLs[ CTBF_CS5 ] = LOW; break;
}
// A0 ~ A25까지의 어드레스에 따라 셀을 설정한다.
for( loop = 0; loop < 26; loop++ )
{
if( vAddress & ( 1 << loop ) )
WSA1110_CELLs[ CTBF_A0 - loop ] = HIGH;
else
WSA1110_CELLs[ CTBF_A0 - loop ] = LOW;
}
#ifdef DONGBNAG_MCM
// 동방보드
// GPIO25 HIGH
WSA1110_CELLs[CTBF_GPIO25_O_EN] = HIGH;
WSA1110_CELLs[CTBF_GPIO25_OUT ] = HIGH;
#endif
}
ezflash 코드 중에 이해가 안되는 부분이 있어 질문 드립니다.
답답한 질문일지 모르지만 성실한 답변 부탁 드립니다.
주소를 설정하는 부분인데...
27회 shift하는 것에서 부터 전제 적으로 이해가 안가네요...
가능하다면 자세한 설명을 부탁 드립니다...
void SA1110_SetAddress( DWORD vAddress )
{
int loop;
WSA1110_CELLs[ CTBF_CS0 ] = HIGH;
WSA1110_CELLs[ CTBF_CS1 ] = HIGH;
WSA1110_CELLs[ CTBF_CS2 ] = HIGH;
WSA1110_CELLs[ CTBF_CS3 ] = HIGH;
WSA1110_CELLs[ CTBF_CS4 ] = HIGH;
WSA1110_CELLs[ CTBF_CS5 ] = HIGH;
switch( ( vAddress >> 27 ) & 0x7 )
{
case 0 : WSA1110_CELLs[ CTBF_CS0 ] = LOW; break;
case 1 : WSA1110_CELLs[ CTBF_CS1 ] = LOW; break;
case 2 : WSA1110_CELLs[ CTBF_CS2 ] = LOW; break;
case 3 : WSA1110_CELLs[ CTBF_CS3 ] = LOW; break;
case 4 : WSA1110_CELLs[ CTBF_CS4 ] = LOW; break;
case 5 : WSA1110_CELLs[ CTBF_CS5 ] = LOW; break;
}
// A0 ~ A25까지의 어드레스에 따라 셀을 설정한다.
for( loop = 0; loop < 26; loop++ )
{
if( vAddress & ( 1 << loop ) )
WSA1110_CELLs[ CTBF_A0 - loop ] = HIGH;
else
WSA1110_CELLs[ CTBF_A0 - loop ] = LOW;
}
#ifdef DONGBNAG_MCM
// 동방보드
// GPIO25 HIGH
WSA1110_CELLs[CTBF_GPIO25_O_EN] = HIGH;
WSA1110_CELLs[CTBF_GPIO25_OUT ] = HIGH;
#endif
}