Hirdetés
-
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
-
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
- Azonnali kézbesítés az év bármely pillanatában
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Apple iPhone 12 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia
- Creative Sound BlasterX G6 7.1 USB külső hangkártya
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
ekkold

