-
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
-
JulianSinulf
őstag
Sziasztok!
Bajban vagyok egy kicsit a függvényekkel. Nem működnek.
Korábban már használtam őket, akkor nem volt gond.
Ahogy a neten olvastam, először a függvényeket kell megírni, majd utána jön a setup és loop rész.
Meg lehet a loop után is írni, de akkor a setup előtt függvény prototípust kell létrehozni.
Én megpróbáltam mind a két módszert, de egyik sem működött.
A setup-on belül lefut az egyik függvény, aminek le is kell futnia, de a loop-ban nem működnek.A kód egy része, mikor a függvény a setup előtt van:
void rovid_vissza()
{
void commTest();
stepper_driver.moveAtVelocity(-VELOCITY);
uint32_t interstep_duration = stepper_driver.getInterstepDuration();
Serial.println(interstep_duration);
delay(500);
stepper_driver.moveAtVelocity(0);
}
void commTest()
{
if (not stepper_driver.isSetupAndCommunicating())
{
Serial.println("Stepper driver not setup and communicating!");
return;
}
Serial.println("Stepper driver OK");
bool hardware_disabled = stepper_driver.hardwareDisabled();
TMC2209::Status status = stepper_driver.getStatus();
if (hardware_disabled)
{
Serial.println("Stepper driver is hardware disabled!");
}
else
Serial.println("Stepper driver is hardware enabled!");
}
void setup()
{
Serial.begin(SERIAL_BAUD_RATE);
stepper_driver.setup(serial_stream);
TMC2209::Settings settings = stepper_driver.getSettings();
stepper_driver.setRunCurrent(RUN_CURRENT_PERCENT);
stepper_driver.enableCoolStep();
stepper_driver.enable();
buff[0] = 0;
commTest();
}
void loop()
{
if(Serial.available())
{
char c = Serial.read();
if(c == '\n')
{
buff[p] = 0;
String str = String(buff);
if(str == "10") void hosszu();
if(str == "-10") void hosszu_vissza();
if(str == "1") void kozepes();
if(str == "-1") void kozepes_vissza();
if(str == ".1") void rovid();
if(str == "-.1") void rovid_vissza();
p=0;
buff[0] = 0;
}
else
{
buff[p] = c;
if(p<Length-1) p++;
}
}
}
A commTest a setup-ban lefut.
Ha a rövid_vissza részét beírom az "if" függvényhez egy az egyben, akkor működik, leszámítva, hogy a commTest már nem fut le.
A kód lényegében úgy működik, ha minden a megfelelő "if" függvénynél van, csak elegánsabb lenne, ha a loop-ban nem lenne annyi minden.Valaki tudna ötletet adni, hogy mit rontok el?
Új hozzászólás Aktív témák
- HP EliteBook 840G6 ! AKCIÓ!!! a készlet erejéig!
- Kobo Aura Edition 2 (N236) 6" háttérvilágításos kijelzővel, 4 GB-os tárhellyel - jó állapotban
- HP ProBook 430 G8, 13,3" FHD IPS, I5-1135GU CPU, 16GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év
- Playstation Portal - 3 hónap Bolti Garanciával
- BESZÁMÍTÁS! ÚJ AMD Ryzen 5600X 5700X 5800X 5900X processzor 3 év garancia 27% áfa termékbeszámítás
- Xiaomi Redmi A3 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo ThinkPad X270 - i5-6G I 8GB I 256GB SSD I 12,5" FHD I HDMI I Cam I W10 I Garancia!
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung S25 Ultra 256GB Csak kipróbált!! Jótállás: 2028.06.19.-ig
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest