اطلاعیه

Collapse
No announcement yet.

راه اندازی HX711 توسط LPC 1768

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی HX711 توسط LPC 1768

    سلام دوستان
    ماژول مبدل انالوگ به دیجیتال HX711 رو تهیه کردم. برای راه اندازی از طریق پروتوکول i2c و با میکرو LPC 1768 مشکل دارم
    کسی میتونه راهنمایی کنه؟
    :redface:

    #2
    پاسخ : راه اندازی HX711 توسط LPC 1768

    سادس شما کتابخونه های AVR رو یه تغییر کوچیک بدید میتونید استفادش کنید
    مثل این فقط نوع تعریف پایه هارو درست کن

    #define ADDO PORTC.4
    #define ADSK PORTC.5
    #define DADDO PINC.4
    #define DADSK PINC.5


    float ReadCount(void){

    unsigned long int Count;
    unsigned char i;
    DDRC.5=1;
    DDRC.4=1;
    ADDO=1;
    ADSK=0;
    Count=0;
    DDRC.4=0;
    // delay_ms(1);
    while(DADDO);
    for (i=0;i<24;i++){
    ADSK=1;
    Count=Count<<1;
    ADSK=0;
    if(DADDO) Count++;
    }
    ADSK=1;
    Count=Count^0x800000;
    ADSK=0;

    wight=(float)Count/100000.0;
    wight=wight*2.8;
    wight=wight-zero;

    return(wight);
    }

    دیدگاه


      #3
      پاسخ : راه اندازی HX711 توسط LPC 1768

      با تشکر از راهنمایی شما اقا رضا
      برنامه 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

      دیدگاه

      لطفا صبر کنید...
      X