Thông báo

Collapse
No announcement yet.

Giúp e giải thích đoạn code này với!

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

  • Giúp e giải thích đoạn code này với!

    Anh chị giúp e giải thích đoạn code này cái. E hok hiểu cái đoạn ctrình con "void DAC_Output(unsigned int valueDAC)".
    sbit Chip_Select at RC0_bit;
    sbit Chip_Select_Direction at TRISC0_bit;

    unsigned int value;

    void InitMain() {
    TRISA0_bit = 1;
    TRISA1_bit = 1;
    Chip_Select = 1;
    Chip_Select_Direction = 0;
    SPI1_Init();
    }

    void DAC_Output(unsigned int valueDAC) {
    char temp;
    Chip_Select = 0;

    temp = (valueDAC >> 8) & 0x0F;
    temp |= 0x30;
    SPI1_Write(temp);

    temp = valueDAC;
    SPI1_Write(temp);
    Chip_Select = 1;
    }


    void main()
    {
    ANSEL = 0;
    ANSELH = 0;
    InitMain();

    value = 2048;

    while (1) {
    if ((RA0_bit) && (value < 4095)) { // If RA0 button is pressed
    value++; // increment value
    }
    else {
    if ((RA1_bit) && (value > 0)) { // If RA1 button is pressed
    value--; // decrement value
    }
    }
    DAC_Output(value); // Send value to DAC chip
    Delay_ms(1);
    }}

  • #2
    sao ko ai giúp hết vậy.

    Comment


    • #3
      mình ko biết gì về PIC nhưng sau khi tra cứu trên mạng thì:
      void DAC_Output(unsigned int valueDAC) {
      char temp;
      Chip_Select = 0; //sẵn sàng nhận dữ liệu

      temp = (valueDAC >> 8) & 0x0F; // lấy 8 bit cao
      temp |= 0x30; // gán thành 0011 xxxx
      SPI1_Write(temp); // truyền 8 bit cao

      temp = valueDAC; // lấy 8 bit thấp
      SPI1_Write(temp); // truyền 8 bit thấp
      Chip_Select = 1; // dừng truyền dữ liệu

      Comment


      • #4
        thanks bạn nhiều

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X