Hirdetés
- Milyen videókártyát?
- A Cherry többé nem gyárt kapcsolókat
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Kihúzhatja a gyufát a PC-s gyártóknál az érkező új Xbox
- Fejhallgató erősítő és DAC topik
- SONY LCD és LED TV-k
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
- Házimozi belépő szinten
- Egér probléma
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
-
PROHARDVER!
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
-
bear_
aktív tag
Megvan a probléma, a for ciklust rontottam el.
Viszont itt is a következő problémám:
Azt szeretném, ha nyomógomb megnyomására egyel magasabb értéket jelenítene meg a 7 szegmenses kijelző.
0 az alapállapot, és ha nyomva tartom akkor felugrik 1-re, ha elengedem akkor visszaugrik 0-ra. Gyanítom ez azért van mert végigfut a kód és nullázódik a mikrokontroller. Hogy lehet azt megoldani, hogy a változó megjegyezze az értéket?
kód:
while (1) {int num=0;if(HAL_GPIO_ReadPin(SW1_GPIO_Port, SW1_Pin)==0){num++;}HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_RESET);for(int i = 0; i <= 15; i++) {HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);if(digits[num][i] == 1) {HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_SET);}else {HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_RESET);}
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);}HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_SET);}} -
Rossz a logika, a clock alacsony szintje alatt kell kiírni a buszra a data bitet, felfutó élnél lesz érvényes, te fordítva csinálod.
Meg kell cserélni aHAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);és a
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);sorokat, így:
while (1) {
HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_RESET);
for(int i = 0; i >= 15; i--) {
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
if(digits[i] == 1) {
HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_SET);
}else {
HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_RESET);
}
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);
}
HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_SET);
}Az is lehet, hogy túl gyorsan küldi ki a kód a biteket, nem tudom milyen órajelen fut a kontrollered, de vmi minimális delay kellhet esetleg a for ciklus végére, a bitek közé, ha a fenti kód se működne helyesen.
Új hozzászólás Aktív témák
- ASZTALI GÉP / ALKATRÉSZ beárazás
- Milyen videókártyát?
- A Cherry többé nem gyárt kapcsolókat
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- BestBuy topik
- Ubuntu Linux
- One mobilszolgáltatások
- alza vélemények - tapasztalatok
- Nintendo Switch 2
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
- Lenovo V130-15IGM laptop (Pentium Silver N5000/8GB/256GB SSD
- Macbook Pro M1 Pro 32/512GB // Számla // Garancia //
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- HIBÁTLAN iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4078, 100% Akkumulátor
- Bomba ár! Lenovo IdeaPad Slim 3 - i7-13620H I 16GB I 512SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
ekkold

