Hirdetés
- iPhone topik
- Fordulat: időben startol S26+, nézd meg, milyen lesz!
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Alma inspirálja ezt az olcsó ZTE-t is
- Beárazták a Nubia Z80 Ultra európai verzióját
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Milyen okostelefont vegyek?
- Apple iPhone 16 Pro - rutinvizsga
- Bemutatkozott a Poco X7 és X7 Pro
- Vége a dalnak: leállt az iPhone Air gyártása
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
ecaddsell
aktív tag
Bár lehet jó eséllyel meg tudnám csinálni (legalábbis az esetek egy részére), de ez nem annyira triviális mert a kondi a jelalakot is torzítja.
Szóval méretezni kell zavaró és kívánatos jeltől függően stb. A zavaró jel meg gombtól, öregedéstől stb. is függhet (meg encodernél forgatás sebessége miegymás).
A SW-ben 1 változót sokkal gyorsabban változtatok mint a kondit újraforrasztom.Példának okáért gyorsan összedobtam a gomb kódját a lenti logikának (mivel most per pill. még fordítani sem tudom, szóval lehet nemcsak hibás is, hanem esélyes, hogy már a fordító sem eszi meg), nekem ez sokkal gyorsabb mint forrasztgatni, tárolós szkópon nézegetni a lehetséges hibákat stb.
(Alsó rész init-be megy, meg GPIO-t változókat stb. be kell állítani).
#include <pthread.h>
#define ROTE_SW GPIO_NUM_xx
#define RENC1_STPLIM 6
typedef struct {
gpio_num_t swpin;
uint16_t step;
} roteswT;
roteswT rote1par;
pthread_t rotethrdsw1;
void* roteswbgrd(void* pars){
roteswT* swpar = (roteswT*) pars; // switch parameters
gpio_num_t swbut = swpar->swpin;
uint32_t bcount;
while (1){
if(digitalRead(swbut) == LOW)
{
bcount = 0;
for(int i=0; i<20; i++){
delayMicroseconds(100);
if(digitalRead(swbut) == LOW) bcount++;
}
if(bcount>=6){
swpar->step = (swpar->step +1) % RENC1_STPLIM;
delay (300);
}
}
delay (5); // could pthread_cond_wait() for interrupt from pin
}
} // roteswbgrd
pinMode(ROTE_SW, INPUT);
rote1par.swpin = ROTE_SW;
rote1par.step = 0;
pthread_create(&rotethrdsw1, NULL, roteswbgrd, (void*) &rote1par);Az encoder számláló része persze kicsit húzósabb és ami dühítő, hogy a HW akár tudhatná is (nagyon közel van hozzá)...
Új hozzászólás Aktív témák
- iPhone topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Fejhallgató erősítő és DAC topik
- Milyen billentyűzetet vegyek?
- Háztartási gépek
- Milyen HASZNÁLT notebookot vegyek?
- Battlefield 6
- Fordulat: időben startol S26+, nézd meg, milyen lesz!
- Elektromos autók - motorok
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Gigabyte Gaming A16 CVHI3HU894SD (Bontatlan)
- Samsung Fold 5, gyöngyházfehér színben, szép állapotban!
- iPhone 15 Pro MAX 256 GB, fekete, hivatalos garancia, 92% akku, tökéletes állapotban!
- újszerű iPhone 16 Pro Max 256GB natural titanium natúr titán független Apple garancia
- Precision 5560 15.6" FHD+ IPS i7-11850H RTX A2000 32GB 512GB NVMe ujjlolv IR kam gar
- BESZÁMÍTÁS! GIGABYTE X570 AORUS ELITE X570 alaplap garanciával hibátlan működéssel
- LG Gram 14 WUXGA IPS i7-1360P 5.0Ghz 12mag 32GB DDR5 1TB SSD Intel Iris XE 10óra Akku Win11 Garancia
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- Fujitsu Lifebook A3510 Laptop
- ÁRGARANCIA! Épített KomPhone i5 10400F 16/32GB/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
ekkold

