Skip to main content
Ctrl+K
BeagleBoard Documentation - Home BeagleBoard Documentation - Home
  • Introduction
  • Boards
  • Projects
  • Books
  • Accessories
    • About
    • Donate
    • GSoC
    • FAQ
  • OpenBeagle
  • Docs
  • Discord
  • Forum
  • BeagleBoard.org
  • Introduction
  • Boards
  • Projects
  • Books
  • Accessories
  • About
  • Donate
  • GSoC
  • FAQ
  • OpenBeagle
  • Docs
  • Discord
  • Forum
  • BeagleBoard.org

Section Navigation

  • simpPRU
    • simpPRU Basics
    • Build from source
    • Install
    • Language Syntax
    • IO Functions
    • Usage(simppru)
    • Usage(simppru-console)
    • simpPRU Examples
      • Delay example
      • Digital read example
      • Digital write example
      • HCSR04 Distance Sensor example (sending distance data to ARM using RPMSG)
      • Ultrasonic range sensor example
      • Sending state of button using RPMSG
      • LED blink on button press example
      • LED blink using for loop example
      • LED blink using while loop example
      • LED blink example
      • LED blink using hardware counter
      • Read hardware counter example
      • Using RPMSG to communicate with ARM core
      • Using RPMSG to implement a simple calculator on PRU
  • BB-Config
    • BB-Config Detail
    • Build from Source
    • Features
    • Version
  • Robot Control Library
    • Struct rc_bmp_data_t
    • Struct rc_filter_t
    • Struct rc_kalman_t
    • Struct rc_matrix_t
    • Struct rc_mpu_config_t
    • Struct rc_mpu_data_t
    • Struct rc_ringbuf_t
    • Struct rc_vector_t
    • Enum rc_bmp_filter_t
    • Enum rc_bmp_oversample_t
    • Enum rc_button_state_t
    • Enum rc_governor_t
    • Enum rc_led_t
    • Enum rc_mav_connection_state_t
    • Enum rc_model_category_t
    • Enum rc_model_t
    • Enum rc_mpu_accel_dlpf_t
    • Enum rc_mpu_accel_fsr_t
    • Enum rc_mpu_gyro_dlpf_t
    • Enum rc_mpu_gyro_fsr_t
    • Enum rc_mpu_orientation_t
    • Enum rc_pinmux_mode_t
    • Enum rc_state_t
    • Function rc_adc_batt
    • Function rc_adc_cleanup
    • Function rc_adc_dc_jack
    • Function rc_adc_init
    • Function rc_adc_read_raw
    • Function rc_adc_read_volt
    • Function rc_algebra_fit_ellipsoid
    • Function rc_algebra_invert_matrix
    • Function rc_algebra_invert_matrix_inplace
    • Function rc_algebra_lin_system_solve
    • Function rc_algebra_lin_system_solve_qr
    • Function rc_algebra_lup_decomp
    • Function rc_algebra_qr_decomp
    • Function rc_algebra_set_zero_tolerance
    • Function rc_bmp_init
    • Function rc_bmp_power_off
    • Function rc_bmp_read
    • Function rc_bmp_set_sea_level_pressure_pa
    • Function rc_button_cleanup
    • Function rc_button_get_state
    • Function rc_button_init
    • Function rc_button_set_callbacks
    • Function rc_button_wait_for_event
    • Function rc_cleanup
    • Function rc_cpu_get_freq
    • Function rc_cpu_print_freq
    • Function rc_cpu_set_governor
    • Function rc_disable_motors
    • Function rc_disable_signal_handler
    • Function rc_dsm_bind_routine
    • Function rc_dsm_calibrate_routine
    • Function rc_dsm_ch_normalized
    • Function rc_dsm_ch_raw
    • Function rc_dsm_channels
    • Function rc_dsm_cleanup
    • Function rc_dsm_init
    • Function rc_dsm_is_connection_active
    • Function rc_dsm_is_new_data
    • Function rc_dsm_nanos_since_last_packet
    • Function rc_dsm_resolution
    • Function rc_dsm_set_callback
    • Function rc_dsm_set_disconnect_callback
    • Function rc_enable_motors
    • Function rc_enable_signal_handler
    • Function rc_encoder_cleanup
    • Function rc_encoder_eqep_cleanup
    • Function rc_encoder_eqep_init
    • Function rc_encoder_eqep_read
    • Function rc_encoder_eqep_write
    • Function rc_encoder_init
    • Function rc_encoder_pru_cleanup
    • Function rc_encoder_pru_init
    • Function rc_encoder_pru_read
    • Function rc_encoder_pru_write
    • Function rc_encoder_read
    • Function rc_encoder_write
    • Function rc_filter_alloc
    • Function rc_filter_alloc_from_arrays
    • Function rc_filter_butterworth_highpass
    • Function rc_filter_butterworth_lowpass
    • Function rc_filter_c2d_tustin
    • Function rc_filter_double_integrator
    • Function rc_filter_duplicate
    • Function rc_filter_empty
    • Function rc_filter_enable_saturation
    • Function rc_filter_enable_soft_start
    • Function rc_filter_first_order_highpass
    • Function rc_filter_first_order_lowpass
    • Function rc_filter_free
    • Function rc_filter_get_saturation_flag
    • Function rc_filter_integrator
    • Function rc_filter_march
    • Function rc_filter_moving_average
    • Function rc_filter_multiply
    • Function rc_filter_multiply_three
    • Function rc_filter_normalize
    • Function rc_filter_pid
    • Function rc_filter_prefill_inputs
    • Function rc_filter_prefill_outputs
    • Function rc_filter_previous_input
    • Function rc_filter_previous_output
    • Function rc_filter_print
    • Function rc_filter_reset
    • Function rc_filter_third_order_complement
    • Function rc_get_encoder_pos
    • Function rc_get_mode_button
    • Function rc_get_pause_button
    • Function rc_get_random_double
    • Function rc_get_random_float
    • Function rc_get_state
    • Function rc_gpio_cleanup
    • Function rc_gpio_get_value
    • Function rc_gpio_init
    • Function rc_gpio_init_event
    • Function rc_gpio_poll
    • Function rc_gpio_set_value
    • Function rc_i2c_close
    • Function rc_i2c_get_fd
    • Function rc_i2c_get_lock
    • Function rc_i2c_init
    • Function rc_i2c_lock_bus
    • Function rc_i2c_read_byte
    • Function rc_i2c_read_bytes
    • Function rc_i2c_read_word
    • Function rc_i2c_read_words
    • Function rc_i2c_send_byte
    • Function rc_i2c_send_bytes
    • Function rc_i2c_set_device_address
    • Function rc_i2c_unlock_bus
    • Function rc_i2c_write_byte
    • Function rc_i2c_write_bytes
    • Function rc_i2c_write_word
    • Function rc_i2c_write_words
    • Function rc_initialize
    • Function rc_kalman_alloc_ekf
    • Function rc_kalman_alloc_lin
    • Function rc_kalman_empty
    • Function rc_kalman_free
    • Function rc_kalman_reset
    • Function rc_kalman_update_ekf
    • Function rc_kalman_update_lin
    • Function rc_kill_existing_process
    • Function rc_led_blink
    • Function rc_led_cleanup
    • Function rc_led_get
    • Function rc_led_set
    • Function rc_led_stop_blink
    • Function rc_led_stop_blink_all
    • Function rc_make_pid_file
    • Function rc_matrix_add
    • Function rc_matrix_add_inplace
    • Function rc_matrix_alloc
    • Function rc_matrix_determinant
    • Function rc_matrix_diagonal
    • Function rc_matrix_duplicate
    • Function rc_matrix_empty
    • Function rc_matrix_free
    • Function rc_matrix_identity
    • Function rc_matrix_left_multiply_inplace
    • Function rc_matrix_multiply
    • Function rc_matrix_outer_product
    • Function rc_matrix_print
    • Function rc_matrix_print_sci
    • Function rc_matrix_random
    • Function rc_matrix_right_multiply_inplace
    • Function rc_matrix_row_vec_times_matrix
    • Function rc_matrix_subtract_inplace
    • Function rc_matrix_symmetrize
    • Function rc_matrix_times_col_vec
    • Function rc_matrix_times_scalar
    • Function rc_matrix_transpose
    • Function rc_matrix_transpose_inplace
    • Function rc_matrix_zero_out
    • Function rc_matrix_zeros
    • Function rc_mav_cleanup
    • Function rc_mav_get_att_pos_mocap
    • Function rc_mav_get_attitude
    • Function rc_mav_get_attitude_quaternion
    • Function rc_mav_get_connection_state
    • Function rc_mav_get_global_position_int
    • Function rc_mav_get_gps_raw_int
    • Function rc_mav_get_heartbeat
    • Function rc_mav_get_local_position_ned
    • Function rc_mav_get_manual_control
    • Function rc_mav_get_msg
    • Function rc_mav_get_scaled_pressure
    • Function rc_mav_get_servo_output_raw
    • Function rc_mav_get_set_position_target_global_int
    • Function rc_mav_get_set_position_target_local_ned
    • Function rc_mav_get_sys_id_of_last_msg
    • Function rc_mav_get_sys_id_of_last_msg_any
    • Function rc_mav_get_sys_status
    • Function rc_mav_init
    • Function rc_mav_is_new_msg
    • Function rc_mav_msg_id_of_last_msg
    • Function rc_mav_ns_since_last_msg
    • Function rc_mav_ns_since_last_msg_any
    • Function rc_mav_print_msg_name
    • Function rc_mav_send_att_pos_mocap
    • Function rc_mav_send_attitude
    • Function rc_mav_send_attitude_quaternion
    • Function rc_mav_send_global_position_int
    • Function rc_mav_send_gps_raw_int
    • Function rc_mav_send_heartbeat
    • Function rc_mav_send_heartbeat_abbreviated
    • Function rc_mav_send_local_position_ned
    • Function rc_mav_send_manual_control
    • Function rc_mav_send_msg
    • Function rc_mav_send_scaled_pressure
    • Function rc_mav_send_servo_output_raw
    • Function rc_mav_send_set_position_target_global_int
    • Function rc_mav_send_set_position_target_local_ned
    • Function rc_mav_send_sys_status
    • Function rc_mav_set_callback
    • Function rc_mav_set_callback_all
    • Function rc_mav_set_callback_connection_lost
    • Function rc_mav_set_dest_ip
    • Function rc_mav_set_system_id
    • Function rc_model
    • Function rc_model_category
    • Function rc_model_category_print
    • Function rc_model_print
    • Function rc_motor_brake
    • Function rc_motor_cleanup
    • Function rc_motor_free_spin
    • Function rc_motor_init
    • Function rc_motor_init_freq
    • Function rc_motor_set
    • Function rc_motor_standby
    • Function rc_mpu_block_until_dmp_data
    • Function rc_mpu_block_until_tap
    • Function rc_mpu_calibrate_accel_routine
    • Function rc_mpu_calibrate_gyro_routine
    • Function rc_mpu_calibrate_mag_routine
    • Function rc_mpu_default_config
    • Function rc_mpu_initialize
    • Function rc_mpu_initialize_dmp
    • Function rc_mpu_is_accel_calibrated
    • Function rc_mpu_is_gyro_calibrated
    • Function rc_mpu_is_mag_calibrated
    • Function rc_mpu_nanos_since_last_dmp_interrupt
    • Function rc_mpu_nanos_since_last_tap
    • Function rc_mpu_power_off
    • Function rc_mpu_read_accel
    • Function rc_mpu_read_gyro
    • Function rc_mpu_read_mag
    • Function rc_mpu_read_temp
    • Function rc_mpu_set_config_to_default
    • Function rc_mpu_set_dmp_callback
    • Function rc_mpu_set_tap_callback
    • Function rc_nanos_since_boot
    • Function rc_nanos_since_epoch
    • Function rc_nanos_thread_time
    • Function rc_nanosleep
    • Function rc_normalize_quaternion
    • Function rc_normalize_quaternion_array
    • Function rc_pinmux_set
    • Function rc_pinmux_set_default
    • Function rc_poly_add
    • Function rc_poly_add_inplace
    • Function rc_poly_butter
    • Function rc_poly_conv
    • Function rc_poly_differentiate
    • Function rc_poly_divide
    • Function rc_poly_power
    • Function rc_poly_print
    • Function rc_poly_subtract
    • Function rc_poly_subtract_inplace
    • Function rc_print_state
    • Function rc_pru_shared_mem_ptr
    • Function rc_pru_start
    • Function rc_pru_stop
    • Function rc_pthread_create
    • Function rc_pthread_get_process_niceness
    • Function rc_pthread_print_properties
    • Function rc_pthread_set_process_niceness
    • Function rc_pthread_set_properties_self
    • Function rc_pthread_timed_join
    • Function rc_pwm_cleanup
    • Function rc_pwm_init
    • Function rc_pwm_set_duty
    • Function rc_pwm_set_duty_ns
    • Function rc_quaternion_conjugate
    • Function rc_quaternion_conjugate_array
    • Function rc_quaternion_conjugate_array_inplace
    • Function rc_quaternion_conjugate_inplace
    • Function rc_quaternion_from_tb
    • Function rc_quaternion_from_tb_array
    • Function rc_quaternion_imaginary_part
    • Function rc_quaternion_multiply
    • Function rc_quaternion_multiply_array
    • Function rc_quaternion_norm
    • Function rc_quaternion_norm_array
    • Function rc_quaternion_rotate
    • Function rc_quaternion_rotate_array
    • Function rc_quaternion_rotate_vector
    • Function rc_quaternion_rotate_vector_array
    • Function rc_quaternion_to_rotation_matrix
    • Function rc_quaternion_to_tb
    • Function rc_quaternion_to_tb_array
    • Function rc_remove_pid_file
    • Function rc_ringbuf_alloc
    • Function rc_ringbuf_empty
    • Function rc_ringbuf_free
    • Function rc_ringbuf_get_value
    • Function rc_ringbuf_insert
    • Function rc_ringbuf_reset
    • Function rc_ringbuf_std_dev
    • Function rc_saturate_double
    • Function rc_saturate_float
    • Function rc_servo_cleanup
    • Function rc_servo_init
    • Function rc_servo_power_rail_en
    • Function rc_servo_send_esc_pulse_normalized
    • Function rc_servo_send_oneshot_pulse_normalized
    • Function rc_servo_send_pulse_normalized
    • Function rc_servo_send_pulse_us
    • Function rc_servo_set_esc_range
    • Function rc_set_encoder_pos
    • Function rc_set_mode_pressed_func
    • Function rc_set_mode_released_func
    • Function rc_set_motor
    • Function rc_set_motor_all
    • Function rc_set_motor_brake
    • Function rc_set_motor_brake_all
    • Function rc_set_motor_free_spin
    • Function rc_set_motor_free_spin_all
    • Function rc_set_pause_pressed_func
    • Function rc_set_pause_released_func
    • Function rc_set_state
    • Function rc_spi_close
    • Function rc_spi_get_fd
    • Function rc_spi_init_auto_slave
    • Function rc_spi_init_manual_slave
    • Function rc_spi_manual_select
    • Function rc_spi_read
    • Function rc_spi_transfer
    • Function rc_spi_write
    • Function rc_timespec_add
    • Function rc_timespec_diff
    • Function rc_timespec_to_micros
    • Function rc_timespec_to_millis
    • Function rc_timeval_to_micros
    • Function rc_timeval_to_millis
    • Function rc_uart_bytes_available
    • Function rc_uart_close
    • Function rc_uart_flush
    • Function rc_uart_get_fd
    • Function rc_uart_init
    • Function rc_uart_read_bytes
    • Function rc_uart_read_line
    • Function rc_uart_write
    • Function rc_usleep
    • Function rc_vector_alloc
    • Function rc_vector_cross_product
    • Function rc_vector_dot_product
    • Function rc_vector_duplicate
    • Function rc_vector_empty
    • Function rc_vector_fibonnaci
    • Function rc_vector_free
    • Function rc_vector_from_array
    • Function rc_vector_max
    • Function rc_vector_mean
    • Function rc_vector_min
    • Function rc_vector_norm
    • Function rc_vector_ones
    • Function rc_vector_print
    • Function rc_vector_print_sci
    • Function rc_vector_projection
    • Function rc_vector_random
    • Function rc_vector_std_dev
    • Function rc_vector_subtract
    • Function rc_vector_sum
    • Function rc_vector_sum_inplace
    • Function rc_vector_times_scalar
    • Function rc_vector_zero_out
    • Function rc_vector_zeros
    • Function rc_version
    • Function rc_version_print
    • Function rc_version_string
    • Variable zero_tolerance
    • Define _GNU_SOURCE
    • Define ARRAY_SIZE
    • Define BLUE_GP0_PIN_3
    • Define BLUE_GP0_PIN_4
    • Define BLUE_GP0_PIN_5
    • Define BLUE_GP0_PIN_6
    • Define BLUE_GP1_PIN_3
    • Define BLUE_GP1_PIN_4
    • Define BLUE_SPI_PIN_6_SS1
    • Define BLUE_SPI_PIN_6_SS2
    • Define CAPE_SPI_PIN_6_SS1
    • Define CAPE_SPI_PIN_6_SS2
    • Define DEG_TO_RAD
    • Define DEG_TO_RAD
    • Define DSM_HEADER_PIN
    • Define G_TO_MS2
    • Define GPIOEVENT_REQUEST_BOTH_EDGES
    • Define GPIOEVENT_REQUEST_FALLING_EDGE
    • Define GPIOEVENT_REQUEST_RISING_EDGE
    • Define GPIOHANDLE_REQUEST_ACTIVE_LOW
    • Define GPIOHANDLE_REQUEST_INPUT
    • Define GPIOHANDLE_REQUEST_OPEN_DRAIN
    • Define GPIOHANDLE_REQUEST_OPEN_SOURCE
    • Define GPIOHANDLE_REQUEST_OUTPUT
    • Define GPS_HEADER_PIN_3
    • Define GPS_HEADER_PIN_4
    • Define I2C_BUFFER_SIZE
    • Define I2C_MAX_BUS
    • Define min
    • Define MS2_TO_G
    • Define PI
    • Define QUAT_W
    • Define QUAT_X
    • Define QUAT_Y
    • Define QUAT_Z
    • Define RAD_TO_DEG
    • Define RAD_TO_DEG
    • Define RC_BB_SPI1_SS1
    • Define RC_BB_SPI1_SS2
    • Define RC_BLUE_SS1_GPIO
    • Define RC_BLUE_SS2_GPIO
    • Define RC_BTN_DEBOUNCE_DEFAULT_US
    • Define RC_BTN_PIN_MODE
    • Define RC_BTN_PIN_PAUSE
    • Define RC_BTN_POLARITY_NORM_HIGH
    • Define RC_BTN_POLARITY_NORM_LOW
    • Define RC_BTN_STATE_PRESSED
    • Define RC_BTN_STATE_RELEASED
    • Define RC_CAPE_SS1_GPIO
    • Define RC_CAPE_SS2_GPIO
    • Define RC_ESC_DEFAULT_MAX_US
    • Define RC_ESC_DEFAULT_MIN_US
    • Define RC_ESC_DJI_MAX_US
    • Define RC_ESC_DJI_MIN_US
    • Define RC_FILTER_INITIALIZER
    • Define RC_GPIOEVENT_ERROR
    • Define RC_GPIOEVENT_FALLING_EDGE
    • Define RC_GPIOEVENT_RISING_EDGE
    • Define RC_GPIOEVENT_TIMEOUT
    • Define RC_KALMAN_INITIALIZER
    • Define RC_LIB_VERSION_HEX
    • Define RC_LIB_VERSION_MAJOR
    • Define RC_LIB_VERSION_MINOR
    • Define RC_LIB_VERSION_PATCH
    • Define RC_MATRIX_INITIALIZER
    • Define RC_MAV_DEFAULT_CONNECTION_TIMEOUT_US
    • Define RC_MAV_DEFAULT_UDP_PORT
    • Define RC_MAX_DSM_CHANNELS
    • Define RC_MOTOR_DEFAULT_PWM_FREQ
    • Define RC_MPU_ALT_I2C_ADDR
    • Define RC_MPU_DEFAULT_I2C_ADDR
    • Define RC_PID_DIR
    • Define RC_PID_FILE
    • Define RC_RINGBUF_INITIALIZER
    • Define RC_SERVO_CH_ALL
    • Define RC_SERVO_CH_MAX
    • Define RC_SERVO_CH_MIN
    • Define RC_SPI_BITS_PER_WORD
    • Define RC_SPI_MAX_SPEED
    • Define RC_SPI_MIN_SPEED
    • Define RC_VECTOR_INITIALIZER
    • Define SPI_HEADER_PIN_3
    • Define SPI_HEADER_PIN_4
    • Define SPI_HEADER_PIN_5
    • Define TB_PITCH_X
    • Define TB_ROLL_Y
    • Define TB_YAW_Z
    • Define TWO_PI
    • Define UART1_HEADER_PIN_3
    • Define UART1_HEADER_PIN_4
    • Typedef rc_bmp_data_t
    • Typedef rc_bmp_filter_t
    • Typedef rc_bmp_oversample_t
    • Typedef rc_button_state_t
    • Typedef rc_filter_t
    • Typedef rc_governor_t
    • Typedef rc_kalman_t
    • Typedef rc_led_t
    • Typedef rc_matrix_t
    • Typedef rc_mav_connection_state_t
    • Typedef rc_model_category_t
    • Typedef rc_model_t
    • Typedef rc_mpu_accel_dlpf_t
    • Typedef rc_mpu_accel_fsr_t
    • Typedef rc_mpu_config_t
    • Typedef rc_mpu_data_t
    • Typedef rc_mpu_gyro_dlpf_t
    • Typedef rc_mpu_gyro_fsr_t
    • Typedef rc_mpu_orientation_t
    • Typedef rc_pinmux_mode_t
    • Typedef rc_ringbuf_t
    • Typedef rc_state_t
    • Typedef rc_vector_t
    • Typedef timespec
    • Typedef timeval
  • BeagleConnectâ„¢ Technology
    • Overview
    • BeaglePlay + BeagleConnect Freedom
    • BeagleBone + BeagleConnect Freedom
Why are we doing this?

We believe in making computers open again to democratize technology and empower individuals and organizations to explore, experiment, and create without the constraints of proprietary systems.

What are we doing?

We design versatile and affordable single-board computers to provide developers, hobbyists, and educators with a platform for prototyping, experimentation, and production of embedded systems. Our comprehensive documentation, tutorials, and vibrant online community support users in their projects and foster knowledge sharing.

How are we doing it?

Through open-source hardware designs, diverse software support, and active community engagement, we enable users to customize, innovate, and collaborate effortlessly in embedded computing.

Support us

The BeagleBoard.org Foundation is a Michigan, USA-based 501(c)(3) non-profit corporation existing to provide education in and collaboration around the design and use of open-source software and hardware in embedded computing.

Become a Patreon Sponsor on GitHub
  • Projects
  • simpPRU
  • simpPRU Examples
  • LED blink using for loop example

LED blink using for loop example#

LED blink using hardware counter

Code#

for : l in 0:10 {
    digital_write(P1_31, true);
    delay(1000);
    digital_write(P1_31, false);
    delay(1000);
}
  • Following code works on PocketBeagle, to use on other boards, please change the pins accordingly.

Explanation#

This code runs for loop with 10 iterations, Inside for it sets header pin P1_31 to HIGH, waits for 1000ms, then sets header pin P1_31 to LOW, then again it waits for 1000ms. This loop runs endlessly, so we get a Blinking output if one connects a LED. So LED will blink 10 times with this code.

previous

LED blink on button press example

next

LED blink using while loop example

Outstanding todo items
On this page
  • Code
  • Explanation
Edit on OpenBeagle
Show Source
Download PDF
Provide Feedback
Feedback
Generate OpenBeagle Issue
Discuss on Forum

BeagleBoard.org is all about being open, please discuss in public on our forum!

© Copyright 2024, BeagleBoard.org Foundation.

Last updated on Mar 11, 2025.