Thông báo

Collapse
No announcement yet.

Cho hỏi ý nghĩa của một vài lệnh?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Cho hỏi ý nghĩa của một vài lệnh?

    #define ADC_VREF_TYPE 0x00

    // Read the AD conversion result
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }

    đó là chương trình đọc ADC, bác nào biết ý nghĩa của cái lệnh:
    |=
    ai biết thì chỉ giúp?
    tại sao #define ADC_VREF_TYPE 0x00 nhưng trong câu ADMUX=adc_input | (ADC_VREF_TYPE & 0xff)
    có phải là thừa không? có thêm 0xff cũng bằng không?
    cố lên anh em.

  • #2
    Có bac nào trên mạng chỉ giúp với muốn biết quá.
    cố lên anh em.

    Comment


    • #3
      Nguyên văn bởi changphieudu Xem bài viết
      #define ADC_VREF_TYPE 0x00

      // Read the AD conversion result
      unsigned int read_adc(unsigned char adc_input)
      {
      ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
      // Delay needed for the stabilization of the ADC input voltage
      delay_us(10);
      // Start the AD conversion
      ADCSRA|=0x40;
      // Wait for the AD conversion to complete
      while ((ADCSRA & 0x10)==0);
      ADCSRA|=0x10;
      return ADCW;
      }

      đó là chương trình đọc ADC, bác nào biết ý nghĩa của cái lệnh:
      |=
      ai biết thì chỉ giúp?
      tại sao #define ADC_VREF_TYPE 0x00 nhưng trong câu ADMUX=adc_input | (ADC_VREF_TYPE & 0xff)
      có phải là thừa không? có thêm 0xff cũng bằng không?
      Lệnh hoặc. Bạn kiếm cuốn hướng dẫn lập trình C mà học. Mất căn bản quá.
      AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
      Xem thêm tại Online Store ---> Click here
      Mob: 0982.083.106

      Comment


      • #4
        Mình biết(|) đó là lệnh hoặc. nhưng minh muốn biết lệnh phức hợp (|=), như ví dụ trên thì có phải được viết lại như sau:
        ADCSRA|=0x40;
        tương đương với:
        ADCSRA=ADCSRA|0x40;
        có đúng không?
        cố lên anh em.

        Comment


        • #5
          Uh, đúng roài, đó chỉ là dạng viết tắt lệnh thôi.
          Còn lệnh ADMUX=adc_input | (ADC_VREF_TYPE & 0xff) chủ yếu để đảm bảo phép OR của adc_input với ADC_VREF_TYPE chỉ thao tác với 8 bits thấp thôi.

          Email:
          Phone: 0905.034.086

          Comment


          • #6
            Trời ơi. www.lenh(|=).botay.com.

            Comment

            Về tác giả

            Collapse

            changphieudu Tìm hiểu thêm về changphieudu

            Bài viết mới nhất

            Collapse

            Đang tải...
            X