با تشکر از راهنمایی شما اقا رضا
برنامه avr شما رو تبدیل به LPC 1768 کردم (در ادامه موجود است) که جواب میدهد ولی مشکل همچنان باقیست!
این دقعه به این صورت که اعداد صحیحی نمیدهد!
ممنون میشم دوستان راهنمایی کنند
:read:
LPC_GPIO2->FIODIR |= 0x3 ; // P2.0 , P2.1 : Output LPC_GPIO2->FIOSET |= 0x2 ; // P2.0 (SDA) = 1
LPC_GPIO2->FIOCLR |= 0x1 ; // P2.1 (SCK) = 0
Count = 0 ;
LPC_GPIO2->FIODIR &= 0xFFFFFFFD ; // P2.1 (SDA) : Input
// Delay_ms(1);
while( (LPC_GPIO2->FIOPIN & 0X00000002)>> 1 ); //while(SDA==1)
for (i=0;i<24;i++)
{
Delay(1);
LPC_GPIO2->FIOSET |= 0X1 ; // P2.0 (SCK) = 1
Count = Count << 1 ; //Count 1 bit shift to left
Delay(70);
LPC_GPIO2->FIOCLR |= 0x1 ; // P2.0 (SCK) = 0
if( (LPC_GPIO2->FIOPIN & 0X00000002)>> 1 ) //if(SDA==1)
{
Count++ ;
}
}
LPC_GPIO2->FIOSET |= 0x1 ; // P2.1 (SCK) = 1
Count = Count ^ 0x800000 ; //Count = Count XOR 0x800000
LPC_GPIO2->FIOCLR |= 0x1 ; // P2.1 (SCK) = 0