- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- btz: Internet fejlesztés országosan!
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bigyo108: A vén PC-Főnix újjászületése
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- Meggyi001: RTX 5060 - Az új népkártya?
- bambano: Bambanő háza tája
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
LOGOUT
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
-
Imy
veterán
Köszi, kipróbáltam. A fordító hibaüzenetet dob, és a bekötés honnan derül ki?
Ez a jelenlegi program, de lehet valamit rosszul csináltam:
#define ROTE_CLK GPIO_NUM_xx
#define ROTE_DT GPIO_NUM_xx
#define ROTE_SPCTM 50000 // speed control time limit, not defined no speedctrl
volatile int32_t rotval = 0;
void IRAM_ATTR isrrot() {
volatile static uint8_t pinsta = 0x3, cwi = 0, ccwi = 0;
volatile static uint8_t cwexp[] = {0xD, 0x4, 0x2, 0xB};
volatile static uint8_t ccwexp[] = {0xE, 0x8, 0x1, 0x7};
int32_t rvchg;
#ifdef ROTE_SPCTM
volatile static uint32_t tc = 0, tm = 0;
uint32_t ctm, td;
#endif
pinsta = (pinsta << 2) & 0xf;
if (digitalRead(ROTE_DT)) pinsta |= 0x2;
if (digitalRead(ROTE_CLK)) pinsta |= 0x1;
if (pinsta == cwexp[cwi]) cwi++;
else if (pinsta == ccwexp[ccwi]) ccwi++;
if (cwi == 0x4 || ccwi == 0x4)
{
if (cwi == 4) rvchg = 1;
else rvchg = -1;
pinsta = 0x3; cwi = 0; ccwi = 0;
#ifdef ROTE_SPCTM
ctm = micros();
td = ctm - tm;
tm = ctm;
if (td < ROTE_SPCTM / 2) rvchg *= 7;
else if (td < (ROTE_SPCTM * 2) / 3) rvchg *= 4;
else if (td < ROTE_SPCTM) rvchg *= 2;
#endif
rotval += rvchg;
}
} // isrrot
int16_t getrotv() {
static int32_t lval = 0;
int32_t cval = rotval;
int16_t rotc = 0;
if (lval != cval) {
rotc = cval - lval;
lval = cval;
}
return (rotc);
} // getrotv
void inirotein(gpio_num_t clk, gpio_num_t dt) {
pinMode(clk, INPUT);
pinMode(dt, INPUT);
attachInterrupt(digitalPinToInterrupt(clk), isrrot, CHANGE);
attachInterrupt(digitalPinToInterrupt(dt), isrrot, CHANGE);
} // inirotein
void setup() {
inirotein(ROTE_CLK, ROTE_DT);
}
void loop() {
Serial.print("Encoder_positionp = "); Serial.println(rotval);
}
Új hozzászólás Aktív témák
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- ZIDOO médialejátszók
- BestBuy topik
- Nyíregyháza és környéke adok-veszek-beszélgetek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- exHWSW - Értünk mindenhez IS
- Windows 10
- Íme a Darksiders 4 első előzetese
- iPhone topik
- Combos kis mini PC-vel jelentkezett a GMKtec
- További aktív témák...
- Insta360 X4 akciókamera Invisible Dive Case
- Samsung Galaxy Watch Ultra Titanium Gray Használt, karcmentes, garanciával 2027. január 29-ig
- iKing.Hu OnePlus 13 Brutális teljesítmény, elegáns külső 12/256 GB Black Eclipse 3
- iKing.Hu Motorola Edge 60 Pro Green Használt, karcmentes állapotban 512 GB tárhely
- iKing.Hu - Motorola G86 5G Dark Blue Használt, karcmentes állapotban 8 GB RAM / 256 GB tárhely
- Bomba ár! Lenovo ThinkPad T480s - i7-8GEN I 16GB I 256GB I 14" WQHD I HDMI I Cam I W11 I Gari!
- Samsung S23 Ultra 8/256GB Állapot: 10/10 6 hó jótállás!
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
- Bezámítás! Asus ROG STRIX G15 G513IH Gamer notebook - R7 4800H 16GB DDR4 512GB SSD GTX 1650 4GB W11
- Xiaomi Redmi Note 13 Pro 256GB Kártyafüggetlen 1 év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest