NRF711 āĻāĻ° āĻ¸āĻžāĻĨā§‡ HX52832 ADC āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡āĻ¨

1āĨ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻāĻœā§‡āĻ¨ā§āĻĄāĻžāĻ¯āĻŧ āĻĻā§āĻŸāĻŋ āĻ…āĻ°ā§āĻ§-āĻ¸ā§‡āĻ¤ā§ āĻšā§€āĻ¨āĻž āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ¨ āĻ—ā§‡āĻœ āĻ¸āĻš nrf52832 āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ›āĻŋāĻ˛āĨ¤

āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻšāĻœ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻ…āĻ­āĻžāĻŦā§‡āĻ° āĻŽā§āĻ–ā§‹āĻŽā§āĻ–āĻŋ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¨āĻ°ā§āĻĄāĻŋāĻ• āĻ¸ā§‡āĻŽāĻŋāĻ•āĻ¨ā§āĻĄāĻžāĻ•ā§āĻŸāĻ° āĻĨā§‡āĻ•ā§‡ SDK-āĻ¤ā§‡ "āĻŽāĻ¨ā§āĻĻā§‡āĻ° āĻŽā§‚āĻ˛" āĻĨāĻžāĻ•āĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡āĻļāĻŋ - āĻ§ā§āĻ°ā§āĻŦāĻ• āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ†āĻĒāĻĄā§‡āĻŸ, āĻ•āĻŋāĻ›ā§ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ•āĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĨ¤ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ¸ā§āĻ•ā§āĻ°ā§āĻ¯āĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻŦā§‡āĻļ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻ¯ā§‡ āĻāĻ‡ āĻšāĻŋāĻĒā§‡ āĻāĻ•āĻŸāĻŋ BLE āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻāĻŦāĻ‚ āĻļāĻ•ā§āĻ¤āĻŋ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻŽā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ "āĻ—ā§āĻĄāĻŋāĻœ" āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§‡āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ…āĻ‚āĻļā§‡ āĻ–ā§āĻŦ āĻ—āĻ­ā§€āĻ°ā§‡ āĻ¯āĻžāĻŦ āĻ¨āĻž, āĻ•āĻžāĻ°āĻŖ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

2. āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž

NRF711 āĻāĻ° āĻ¸āĻžāĻĨā§‡ HX52832 ADC āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡āĻ¨

āĻ˛ā§‹āĻšāĻž:

  • āĻ…ā§āĻ¯āĻžāĻĄāĻžāĻĢā§āĻ°ā§āĻŸ āĻĢā§‡āĻĻāĻžāĻ° nRF52 āĻŦā§āĻ˛ā§āĻĢā§āĻ°ā§āĻŸ āĻāĻ˛āĻ‡ (āĻšāĻžāĻ¤ā§‡ āĻ•ā§€ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛)
  • HX711 ADC
  • āĻšāĻžāĻ‡āĻ¨āĻŋāĻœ āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ¨ āĻ—ā§‡āĻœ 2 āĻĒāĻŋāĻ¸āĻŋāĨ¤ (50x2 āĻ•ā§‡āĻœāĻŋ)
  • āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ° ST-LINK V2

āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°:

  • IDE VSCODE
  • NRF SDK 16
  • OpenOCD
  • āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ° ST-LINK V2

āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§‡āĻŦāĻ˛ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŸā§āĻ‡āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ†āĻĒāĻ¨āĻžāĻ° SDK āĻāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨)āĨ¤

3. āĻ•ā§‹āĻĄā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž

āĻ†āĻŽāĻ°āĻž GPIOTE āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ āĻĒā§‡āĻ°āĻŋāĻĢā§‡āĻ°āĻžāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻāĻŦāĻ‚ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻžāĻāĻ§āĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ PPI āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻ…āĻ‚āĻļāĻ—ā§āĻ°āĻšāĻŖ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‡āĻ°āĻŋāĻĢā§‡āĻ°āĻžāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡āĨ¤

ret_code_t err_code;
   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//ĐŊĐ°ŅŅ‚Ņ€Đ°ĐĩваĐĩĐŧ ĐŊĐ° вŅ‹Ņ…Од
   nrf_drv_gpiote_out_config_t config = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false);//ĐąŅƒĐ´ĐĩĐŧ ĐŋĐĩŅ€ĐĩĐ´ĐĩŅ€ĐŗиваŅ‚ŅŒ ĐŋиĐŊ Đ´ĐģŅ иĐŧĐŋŅƒĐģŅŒŅĐ°
   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//ĐŊĐ°ŅŅ‚Ņ€Đ°ĐĩваĐĩĐŧ ĐŊĐ° вŅ‹Ņ…Од

āĻ†āĻŽāĻ°āĻž 10 Îŧs āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĄāĻžāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡ PD_SCL āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻŋāĨ¤

   nrf_drv_gpiote_in_config_t  gpiote_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(false);// ĐŋĐĩŅ€ĐĩŅ…Од ŅƒŅ€ĐžĐ˛ĐŊŅ Ņ вŅ‹ŅĐžĐēĐžĐŗĐž ĐŊĐ° ĐŊиСĐēиК
   nrf_gpio_cfg_input(DOUT, NRF_GPIO_PIN_NOPULL);// ĐŊĐ° вŅ…Од ĐąĐĩС ĐŋОдŅ‚ŅĐļĐēи
   err_code = nrf_drv_gpiote_in_init(DOUT, &gpiote_config, gpiote_evt_handler); 

static void gpiote_evt_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)
{
    nrf_drv_gpiote_in_event_disable(DOUT);//ĐžŅ‚ĐēĐģŅŽŅ‡Đ°ĐĩĐŧ ĐŋŅ€ĐĩŅ€Ņ‹Đ˛Đ°ĐŊиĐĩ
    nrf_drv_timer_enable(&m_timer0);//вĐēĐģŅŽŅ‡Đ°ĐĩĐŧ Ņ‚Đ°ĐšĐŧĐĩŅ€
}
 

āĻ†āĻŽāĻ°āĻž HX711-āĻāĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ DOUT āĻĄā§‡āĻŸāĻž āĻ˛āĻžāĻ‡āĻ¨ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻŋ; āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ° āĻĨāĻžāĻ•ā§‡, āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻšāĻ¯āĻŧ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ§āĻž āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ PD_SCL āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡ āĻ˜āĻĄāĻŧāĻŋāĻ° āĻ¸ā§āĻĒāĻ¨ā§āĻĻāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋāĨ¤

 err_code = nrf_drv_ppi_channel_alloc(&m_ppi_channel1);
   APP_ERROR_CHECK(err_code);
   err_code = nrf_drv_ppi_channel_assign(m_ppi_channel1,                                         nrf_drv_timer_event_address_get(&m_timer0, NRF_TIMER_EVENT_COMPARE0),                                           nrf_drv_gpiote_out_task_addr_get(PD_SCK));// ĐŋОдĐēĐģŅŽŅ‡Đ°ĐĩĐŧ Ņ‚Đ°ĐšĐŧĐĩŅ€ Đē вŅ‹Ņ…ОдŅƒ
   APP_ERROR_CHECK(err_code);
   err_code = nrf_drv_ppi_channel_enable(m_ppi_channel1);// вĐēĐģŅŽŅ‡Đ°ĐĩĐŧ ĐēĐ°ĐŊĐ°Đģ
   APP_ERROR_CHECK(err_code);
   nrf_drv_gpiote_out_task_enable(PD_SCK); 

// gpiote āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§āĻ¨

āĻāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž PPI āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻŸāĻŋ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸāĻžāĻ‡āĻŽāĻžāĻ°āĻ•ā§‡ PD_SCL āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻ˜āĻŸāĻ¨āĻž āĻ˜āĻŸāĻ˛ā§‡ 10 Îŧs āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĄāĻžāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ GPIOTE āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻŸāĻŋāĻ“ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋāĨ¤


nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;// ĐŋĐž ŅƒĐŧĐžĐģŅ‡Đ°ĐŊиŅŽ
   timer_cfg.frequency = NRF_TIMER_FREQ_1MHz;// Ņ‚Đ°ĐēŅ‚иŅ€ŅƒĐĩĐŧ ĐŊĐ° Ņ‡Đ°ŅŅ‚ĐžŅ‚Đĩ 1МĐŗŅ†
   ret_code_t err_code = nrf_drv_timer_init(&m_timer0, &timer_cfg, timer0_event_handler);
   APP_ERROR_CHECK(err_code);
   nrf_drv_timer_extended_compare(&m_timer0,
                                  NRF_TIMER_CC_CHANNEL0,
                                  nrf_drv_timer_us_to_ticks(&m_timer0,
                                                            10),
                                  NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK,
                                  true);// ŅŅ€Đ°ĐąĐ°Ņ‚Ņ‹Đ˛Đ°ĐĩŅ‚ ĐŋĐž ŅŅ€Đ°Đ˛ĐŊĐĩĐŊиŅŽ

āĻ†āĻŽāĻ°āĻž āĻļā§‚āĻ¨ā§āĻ¯ āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻāĻŦāĻ‚ āĻāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋāĨ¤

  if(m_counter%2 != 0 && m_counter<=48){
       buffer <<= 1;// ĐŋĐĩŅ€ĐĩĐŧĐĩĐŊĐŊĐ°Ņ ŅŅ‡Đ¸Ņ‚Đ°ĐŊĐŊŅ‹Ņ… Đ´Đ°ĐŊŅ‹Ņ…
        c_counter++;// ŅŅ‡ĐĩŅ‚Ņ‡Đ¸Đē ĐŋĐžĐģĐžĐļиŅ‚ĐĩĐģŅŒĐŊŅ‹Ņ…  иĐŧĐŋŅƒĐģŅŒŅĐžĐ˛
           if(nrf_gpio_pin_read(DOUT))buffer++;//ŅŅ‡Đ¸Ņ‚Ņ‹Đ˛Đ°ĐĩĐŧ ŅĐžŅŅ‚ĐžŅĐŊиĐĩ вŅ…Ода
   }

āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻŸāĻŋ āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§‡ āĻ˜āĻŸā§‡āĨ¤ āĻ¨āĻžāĻĄāĻŧāĻŋāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ 20 ÎŧsāĨ¤ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻœā§‹āĻĄāĻŧ āĻĄāĻžāĻ˛ (āĻ‰āĻĻā§€āĻ¯āĻŧāĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻŦāĻ°āĻžāĻŦāĻ°) āĻ†āĻ—ā§āĻ°āĻšā§€ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž 24-āĻāĻ° āĻŦā§‡āĻļāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ 48āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŦāĻŋāĻœā§‹āĻĄāĻŧ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯, DOUT āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ

āĻĄā§‡āĻŸāĻžāĻļā§€āĻŸ āĻĨā§‡āĻ•ā§‡ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĄāĻžāĻ˛ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ 25 āĻšāĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¯āĻž 128 āĻāĻ° āĻ˛āĻžāĻ­ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ (āĻ•ā§‹āĻĄā§‡ āĻ†āĻŽāĻŋ 25āĻŸāĻŋ āĻĄāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ), āĻāĻŸāĻŋ 50 āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯, āĻ¯āĻž āĻĄā§‡āĻŸāĻž āĻĢā§āĻ°ā§‡āĻŽā§‡āĻ° āĻļā§‡āĻˇ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤

 ++m_counter;// ŅŅ‡ĐĩŅ‚Ņ‡Đ¸Đē ŅĐžĐąŅ‹Ņ‚иК
if(m_counter==50){
      nrf_drv_timer_disable(&m_timer0);// ĐžŅ‚ĐēĐģŅŽŅ‡Đ°ĐĩĐŧ Ņ‚Đ°ĐšĐŧĐĩŅ€
       m_simple_timer_state = SIMPLE_TIMER_STATE_STOPPED;//
       buffer = buffer ^ 0x800000;
       hx711_stop();//jĐžŅ‚ĐēĐģŅŽŅ‡Đ°ĐĩĐŧ hx711
       }
   

āĻāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻŸāĻžāĻ‡āĻŽāĻžāĻ°āĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻŋ (āĻĄā§‡āĻŸāĻžāĻļā§€āĻŸ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡) āĻāĻŦāĻ‚ HX711 āĻ•āĻŽ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ–āĻ°āĻš āĻŽā§‹āĻĄā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻŋāĨ¤


static void repeated_timer_handler(void * p_context)
{
   nrf_drv_gpiote_out_toggle(LED_2);
   if(m_simple_timer_state == SIMPLE_TIMER_STATE_STOPPED){
      	hx711_start();// вĐēĐģŅŽŅ‡Đ°ĐĩĐŧ hx711
       nrf_drv_gpiote_out_toggle(LED_1);
       m_simple_timer_state = SIMPLE_TIMER_STATE_STARTED;
   }
  
}
/**@brief Create timers.
*/
static void create_timers()
{
   ret_code_t err_code;
 
   // Create timers
   err_code = app_timer_create(&m_repeated_timer_id,
                               APP_TIMER_MODE_REPEATED,
                               repeated_timer_handler);
   APP_ERROR_CHECK(err_code);
}

āĻ†āĻŽāĻ°āĻž RTC āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻĨā§‡āĻ•ā§‡ 10 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ (āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§‡) āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§‡ HX711 āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŦ, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡ DOUT āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻŦāĻžāĻ§āĻž āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻšāĻŦā§‡āĨ¤

āĻ†āĻ°āĻ“ āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ†āĻ›ā§‡, āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋ UART āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻšāĻ¯āĻŧ (āĻŦāĻĄ āĻ°ā§‡āĻŸ 115200, TX - 6 āĻĒāĻŋāĻ¨, RX - 8 āĻĒāĻŋāĻ¨) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ sdk_config.h āĻ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡

NRF711 āĻāĻ° āĻ¸āĻžāĻĨā§‡ HX52832 ADC āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡āĻ¨

āĻ¤āĻĨā§āĻ¯āĻ“

āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦā§‡āĨ¤ āĻ†āĻŽāĻŋ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ¨āĻ°ā§āĻĄāĻŋāĻ• āĻ¤āĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¤āĻž āĻļāĻ•ā§āĻ¤āĻŋ āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ āĻŦā§‡āĻļ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧāĨ¤

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯

āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻ†āĻ—ā§āĻ°āĻšā§‡āĻ° āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻŋ āĻ“āĻœāĻ¨ āĻ¸ā§‡āĻ¨ā§āĻ¸āĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•ā§āĻ¯āĻžāĻ˛āĻŋāĻŦā§āĻ°ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ BLE āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦāĨ¤

āĻ‰āĻĒāĻ•āĻ°āĻŖ

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨