اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه نویسی adc

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

    مشکل در برنامه نویسی adc

    کسی میتونه برام توضیح بده دقیقا وظیفه این کد چیه؟؟؟و چرا اینجوری مینویسنش؟؟؟
    کد:
    [left]
    } while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion
    return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value[/left][/left]
    }
    کد برای adc هستش.اینم کل برنامه:
    کد:
    #include "LPC23xx.h[left]"
    static unsigned short ADC_Read(void)
    {
    unsigned int i;
    AD0CR |= 0x01000000; // Start A/D Conversion
    do
    {
    i = AD0DR0; // Read A/D Data Register
    } while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion
    return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value
    }
    main (void) {
    unsigned short current_value,last_value,temp,value,n;
    SCS=SCS | 1;
    FIO0DIR = 0x00000FF0; /* P0.4..11 defined as Outputs */
    /* Power enable, Setup pin, enable and setup AD converter interrupt
    */
    PINSEL1 = 0x4000; /* AD0.0 pin function select */
    PCONP |= (1 << 12); /* Enable power to AD block */
    AD0CR = 0x00200301; /* Power up, PCLK/4, sel AD0.0 */
    while(1){
    current_value=ADC_Read();
    if (current_value!=last_value)
    {
    value=current_value>>2;
    FIO0CLR=0x0ff;
    FIO0SET=value<<4;
    last_value=current_value;
    }
    }
    return 0;[/left]

    [glow=red,2,300]BEST REGARDS[/glow]
لطفا صبر کنید...
X