-
Fototrend
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
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- Apple iPhone Air Space Black 256 GB Használt, újszerű 100% akku / 7 ciklus 2026. 09.25
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 512GB SSD ASUS ROG STRIX RTX 3070Ti 8GB Zalman Z1 PLUS 750W
- GYÖNYÖRŰ iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
ekkold
