hỏi đáp thư viện STM32

Thảo luận trong 'Họ ARM'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. ino

    ino Học sinh phổ thông

    Tham gia ngày:
    24/10/16
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT)
    {
    ITStatus bitstatus = RESET;
    uint16_t itstatus = 0x0, itenable = 0x0;
    /* Check the parameters */
    assert_param(IS_TIM_ALL_PERIPH(TIMx));
    assert_param(IS_TIM_GET_IT(TIM_IT));

    itstatus = TIMx->SR & TIM_IT;
    itenable = TIMx->DIER & TIM_IT;
    if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET))
    {
    bitstatus = SET;
    }
    else
    {
    bitstatus = RESET;
    }
    return bitstatus;
    }
    Các bác cho em hỏi ở hàm trên trong thư viện STM32F10xx, dòng lệnh sau đây được hiểu như thế nào? Mong bác nào biết chỉ rõ cho em hiểu, vì thuật toán như thế này gặp rất nhiều trong thư viện
    itstatus = TIMx->SR & TIM_IT;
    itenable = TIMx->DIER & TIM_IT;
     
  2. dungvt

    dungvt VIP

    Tham gia ngày:
    15/4/13
    Bài viết:
    583
    Đã được thích:
    905
    Điểm thành tích:
    93
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Đây là cách viết khi ta cần kiểm tra bit của thanh ghi đang lên 1 hay xuống 0, sử dụng toán tử AND
    Mã:
    itstatus = TIMx->SR & TIM_IT;
    
    Dòng code này có nghĩa là 'kiểm tra bit TIM_IT của thanh ghi Status Register đang là 1 (SET) hay 0 (RESET)

    u1.
     
    ino thích bài này.
  3. huunho

    huunho Thạc sỹ

    Tham gia ngày:
    16/1/14
    Bài viết:
    3,182
    Đã được thích:
    1,423
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Chuẩn rồi bạn, viết thế này TIMx->SR là thanh ghi SR của TIMx
    giả sử bạn muốn kiểm tra bít 2 của thanh ghi SR bằng 0 hay 1 thì viết như sau: if(TIMx->SR & 0x2 == reset)
    {
    nếu bit 2 = 0 thi làm việc tại đây
    }
     
    ino thích bài này.
  4. ino

    ino Học sinh phổ thông

    Tham gia ngày:
    24/10/16
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Xin cảm ơn các bác đã giải đáp câu hỏi của em.
     
Tags: họ ARM

Chia sẻ trang này