Pico Eğitim Kartı için buton kontrol implementasyonu. Ayrıntılar...
#include "pico_training_board.h"
Veri Yapıları | |
| struct | button_state_t |
| Bir butonun durumunu ve zamanlamasını takip eden yapı tipi. Ayrıntılar... | |
Fonksiyonlar | |
| bool | button_pressed (uint gpio) |
| Debounce korumalı temel buton basma kontrolü | |
| void | init_buttons (void) |
| Tüm buton GPIO pinlerini başlat. | |
| static int | get_button_index (uint gpio) |
| GPIO pininden buton indeksini al. | |
| bool | check_button_event (uint gpio, ButtonEvent event) |
| Çeşitli zamanlama kontrolleriyle buton basma kontrolü | |
| uint32_t | get_button_hold_duration (uint gpio) |
| Bir butonun ne kadar süre al. | |
| uint | wait_for_button_press (uint32_t timeout_ms) |
| Herhangi bir buton basılmasını bekle. | |
Değişkenler | |
| static button_state_t | button_states [3] = {0} |
Pico Eğitim Kartı için buton kontrol implementasyonu.
Bu dosya, Pico Eğitim Kartı üzerindeki buton girişleri için fonksiyonlar sağlar, debounce koruması, basma algılama ve zamanlama özelliklerini içerir.
| bool button_pressed | ( | uint | gpio | ) |
Debounce korumalı temel buton basma kontrolü
| gpio | Kontrol edilecek GPIO pini |
Buton sıçramalarından kaynaklanan yanlış tetiklenmeleri önlemek için 100ms debounce süresi uygular. Sadece debounce süresi geçtikten sonra basma işlemini kaydeder.

| bool check_button_event | ( | uint | gpio, |
| ButtonEvent | event | ||
| ) |
Çeşitli zamanlama kontrolleriyle buton basma kontrolü
| gpio | Kontrol edilecek GPIO pini |
| event | Kontrol edilecek buton olayı türü (BUTTON_PRESSED, BUTTON_RELEASED veya BUTTON_HELD) |
Farklı buton olay türlerini işler:

| uint32_t get_button_hold_duration | ( | uint | gpio | ) |
Bir butonun ne kadar süre al.
| gpio | Kontrol edilecek GPIO pini |
Butonun sürekli olarak ne kadar süre basılı tutulduğunu döndürür. Buton şu anda basılı değilse veya GPIO pini geçersizse 0 döndürür.

|
static |
GPIO pininden buton indeksini al.
| gpio | GPIO pin numarası |
GPIO pin numaralarını buton durumu takibi için dizi indekslerine eşler. GPIO pini geçerli bir buton pini değilse -1 döndürür.

| void init_buttons | ( | void | ) |
Tüm buton GPIO pinlerini başlat.
YUKARI, TAMAM ve AŞAĞI butonlarını pull-down dirençli giriş pinleri olarak yapılandırır. Bu, butonlar basılı değilken bilinen bir durumda olmalarını sağlar.

| uint wait_for_button_press | ( | uint32_t | timeout_ms | ) |
Herhangi bir buton basılmasını bekle.
| timeout_ms | Maksimum bekleme süresi (milisaniye cinsinden, sonsuz için 0) |
Şu durumlardan biri gerçekleşene kadar program akışını bloklar:

|
static |