Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   755 / 838
(#) Jonni válasza asch hozzászólására (») Nov 22, 2022 /
 
Ez jó részletes válasz volt.

Idézet:
„Ezt a legtöbben nem is tudják, nekem is mellbevágó volt amikor először hallottam, annyira triviális, hogy a 32767 után a -32768 jön”
Nem vagyok benne biztos de nem itt is arról van szó mint a millis-nél? Hogy átfordul és 32767 után azért jön -32768 mert átfordult és itt a -32768 lesz a legkissebb szám?



Idézet:
„Pláne, hogy 32 bites vezérlőkre is van Arduino, ahol szerintem az int már 32 bites, a long pedig 64 bites szokott lenni.”
Akkor ez lehet az egyik oka , hogy mikor lefordítja a kódot alúl olyan szürreálisan magas számot ír? Pl: A vázlat 42912 bájt (65%)-ot használ a program tárhelyből.
(#) asch válasza Gafly hozzászólására (») Nov 22, 2022 / 1
 
Ez nem profi környezet kérdése, volt már hogy napokat töltöttem ilyen aritmetikából adódó bug vadászásával hobbi projektben is. Ráadásul volt a programhoz egy szimulátorom PC-n, amin lefutott ugyanaz a kód és persze helyesen. Csakhogy sikerült pont egy platformfüggő sort leírnom, ami a mikrovezérlőn viszont rosszul működött. Ha mondjuk interrupt kontextusban követsz el egy ilyet, akkor nem egyszerű debuggolni.
Ezért ésszerű megközelítés hobbi környezetben is betartani ilyesmi szabályokat, összességében olcsóbban jön ki az ember, mintha napokig kell keresni a bugokat. Illetve hiába hobbi, az eszközöket akkor is érdemes jól ismerni a korlátaikkal együtt. Azért is neveztem meg a szabványt, mert nyilván nem fogom leírni az egészet, hogy milyen buktatók vannak, de akit érdekel az rákereshet ez alapján.
A hozzászólás módosítva: Nov 22, 2022
(#) asch válasza Jonni hozzászólására (») Nov 22, 2022 / 2
 
Idézet:
„Nem vagyok benne biztos de nem itt is arról van szó mint a millis-nél? Hogy átfordul és 32767 után azért jön -32768 mert átfordult és itt a -32768 lesz a legkissebb szám?”

De, erről van szó. Minden általam ismert platformon így van, a negatív számokat kettes komplemens ábrázolás szerint kezeli, és ebben így működik az átfordulás. De a C szabvány szerint ennek nem kötelező így lennie, és ha erre építve működik a programod, akkor nem garantált, hogy minden platformon helyes lesz.
Idézet:
„Akkor ez lehet az egyik oka , hogy mikor lefordítja a kódot alúl olyan szürreálisan magas számot ír? Pl: A vázlat 42912 bájt (65%)-ot használ a program tárhelyből.”

Nem, ennek összetettebb oka lesz. Milyen MCU-ra írja ezt? Egy UNO-ra már rá se férne ez a kód, mert annak 32KB program memóriája van. Általában a használt könyvtári függvények szoktak nagyok lenni. Például ha printf-et és társait használod, az rengeteg dolgot magával ránt. Illetve a fixpontos osztás, és a lebegőpontos műveletek könyvtára is számítani szokott.
Ezzel a paranccsal lehet csinálni map filet, és abban meg lehet nézni, hogy mik kerülnek a programba (AVR esetén, az elf fájlt és az avr-objdump programot meg kell keresni, hogy hová teszi az Arduino): avr-objdump -t project.elf
(#) sargarigo válasza asch hozzászólására (») Nov 22, 2022 / 1
 
Idézet:
„Ezzel a paranccsal lehet csinálni map filet, és abban meg lehet nézni, hogy mik kerülnek a programba (AVR esetén, az elf fájlt és az avr-objdump programot meg kell keresni, hogy hová teszi az Arduino): avr-objdump -t project.elf”

Ezt elteszem magamnak, köszi!
(#) Jonni válasza asch hozzászólására (») Nov 22, 2022 /
 
Idézet:
„Milyen MCU-ra írja ezt? Egy UNO-ra már rá se férne ez a kód”


Na most lebuktam
Nem arduinót használok hanem NUCLEO-F302R8 -at de az arduino IDE-vel töltőm fel a megirt kódot.
(#) Jonni válasza Jonni hozzászólására (») Nov 22, 2022 /
 
Egyébként ez volt az eggyik oka hogy NUCLEO-F302R8 at vettem mert abba ARM®32-bit Cortex®-M4 CPU van és ez állitólag elég jól elboldogul a lebegőpontos számitásokkal.
(#) vargham válasza Jonni hozzászólására (») Nov 22, 2022 / 1
 
Van benne FPU, amit csak akkor használ, ha a fordítót a megfelelő paraméterrel hívod.
(#) vargham válasza Jonni hozzászólására (») Nov 22, 2022 /
 
Idézet:
„Nem arduinót használok hanem NUCLEO-F302R8 -at de az arduino IDE-vel töltőm fel a megirt kódot.”

Ha nem használod az Arduino keretrendszert, akkor miért pont azzal töltöd fel a programodat? Nem túl felhasználóbarát. Hogyan debuggolsz?
Amúgy milyen libeket használsz? HAL, LL? CubeIDE nem vált be?
(#) Jonni válasza vargham hozzászólására (») Nov 22, 2022 /
 
Pontosabban ARDUINO IDE-be irom a programot is és azzal töltöm fel .
A debugolást még soha nem próbáltam...
Arduino-s libeket
pl:
#include <Wire.h>
#include <TimeLib.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
CubeIDE-t letöltőttem de még nem használtam (ahhoz még nem értek).
(#) vargham válasza Jonni hozzászólására (») Nov 22, 2022 /
 
OK, szóval Arduinot használsz.
(#) Jonni válasza vargham hozzászólására (») Nov 22, 2022 /
 
Igen de cube-t is meg akarom tanulni majd.
(#) kiborg hozzászólása Nov 25, 2022 /
 
Sziasztok!
Felraktam az Arduino IDE 2.0-t, STM32 BluePill a cél eszköz.
Először a java-t hiányolta, felraktam neki EZEN videó alapján.
Ezután már nem dobja a hibaüzenetet, viszont kitalált mást:
  1. Sketch uses 12804 bytes (19%) of program storage space. Maximum is 65536 bytes.
  2. Global variables use 2064 bytes (10%) of dynamic memory, leaving 18416 bytes for local variables. Maximum is 20480 bytes.
  3. maple_loader v0.1
  4. Resetting to bootloader via DTR pulse
  5. #
  6. # A fatal error has been detected by the Java Runtime Environment:
  7. #
  8. #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=4580, tid=7472
  9. #
  10. # JRE version: OpenJDK Runtime Environment Temurin-17.0.5+8 (17.0.5+8) (build 17.0.5+8)
  11. # Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (17.0.5+8, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
  12. # Problematic frame:
  13. # C  [jSSC-2.8_x86_64.dll+0xb5db]
  14. #
  15. # No core dump will be written. Minidumps are not enabled by default on client versions of Windows
  16. #
  17. # An error report file with more information is saved as:
  18. # C:\Users\Tibor\AppData\Local\Arduino15\packages\stm32duino\tools\stm32tools\2022.9.26\win\hs_err_pid4580.log
  19. #
  20. # If you would like to submit a bug report, please visit:
  21. #   https://github.com/adoptium/adoptium-support/issues
  22. # The crash happened outside the Java Virtual Machine in native code.
  23. # See problematic frame for where to report the bug.


Mit csináljak ? Köszi.
A régebbi Arduino meg egyébként működik mellette, fura...
A hozzászólás módosítva: Nov 25, 2022
(#) Jonni válasza kiborg hozzászólására (») Nov 25, 2022 /
 
Más is panaszkodott már az Arduino IDE 2.0 -ra. Talán jobban jársz a régebbi verzióval
(#) Skori válasza kiborg hozzászólására (») Nov 25, 2022 / 2
 
Idézet:
„Mit csináljak ? Köszi.
A régebbi Arduino meg egyébként működik mellette, fura...”
Akkor használd a régebbit! Ha az is tud jó kódot fordítani, akkor nem látom mi az előnye az újabbnak, pláne, hogy nem is akar rendesen működni. Majd akkor tedd fel az újat megint, ha javítják a hibáit.
(#) kiborg válasza Skori hozzászólására (») Nov 25, 2022 /
 
Azt, hogy mi az előnye még én sem tudom. Ki szerettem volna próbálni. De akkor ez még túl friss és nyűgös....
(#) moltam válasza kiborg hozzászólására (») Nov 25, 2022 /
 
Felejtsd el az arduino ide-t és válts platformiora, azzal még debugolni is fogsz tudni ha van stlink vagy egyéb debugger és nem az usb (vagy egyéb) bootloadert használod.
(#) asch válasza kiborg hozzászólására (») Nov 25, 2022 /
 
Rákerestem a hibára a dll neve és a hibakód alapján. Rengeteg találat van, sokan szívtak már ezzel a jSSC soros port kezelő lib hibája. A logod alapján 2.8-as jSSC van az Arduino-ba csomagolva, és itt azt írja egy felhasználó, hogy a 2.9-esre váltás megoldotta a problémáját: https://github.com/java-native/jssc/issues/65#issuecomment-1112601566
Nem mondom, hogy biztosan ugyanez a hiba jön elő nálad is és hogy ugyanígy megoldaná, de ha ki lehet cserélni a dll-t és a hozzá tartozó jart az Arduino-n belül, akkor ezt meg lehet próbálni.
Nagyon érdekes, mert letöltöttem a 2.0.2-es Arduino IDE-t Windowshoz, és ebben semmilyen Java csomagot nem találtam. Nem telepítettem, csak leszedtem a zip-et és megnéztem mi van benne. Lehetséges, hogy a jSSC-t board supportként tölti le és használja? Kipróbáltad, hogy a 2.0.2-re előremész megnézni, hogy az működik-e?
(#) kiborg válasza asch hozzászólására (») Nov 25, 2022 /
 
Szia!
2.0.2 van fent. Én is a zip-et szedtem le, először tök más volt a hiba, arra rákerestem és meg is oldódott, de jött helyette más.
Mit és hol cseréljek ki ? (ennyire nem vagyok expert)
Köszi a segítséget.
(#) Jonni válasza Skori hozzászólására (») Nov 25, 2022 /
 
Idézet:
„Ha az is tud jó kódot fordítani, akkor nem látom mi az előnye az újabbnak, pláne, hogy nem is akar rendesen működni.”

Ezzel én is egyet értek.
(#) Lamprologus hozzászólása Nov 25, 2022 /
 
ESP01-el próbálok e-mailt küldeni az EMailSender segítségével gmail fiókon keresztül ... Bővebben: Link

Részben megy is a dolog ... csak egy kis probléma van.

Ha az ESP-ben be akarom állítani az IP címet, akkor nem sikerül az e-mail küldés, ha a router oszt ki IP címet az ESP-nek akkor meg megy. Ha a routerben állítok be fix IP-t az ESP-hez akkor is küldi a levelet.

  1. IPAddress ip(192, 168, 0, 110);
  2.    IPAddress gateway(192, 168, 0, 1);
  3.    IPAddress subnet(255, 255, 255, 0);
  4.    WiFi.config(ip, gateway, subnet);


Az ESP-nek fix IP cím kell mert azt is el kell tudnom érni, mivel fut rajta egy webserver

Ez mitől lehet?
(#) pipi válasza Lamprologus hozzászólására (») Nov 25, 2022 / 2
 
Szerintem DNS-t is kéne állítanod a fix ip esetén...
(#) Lamprologus válasza pipi hozzászólására (») Nov 26, 2022 /
 
Köszi! Úgy néz ki, valóban az hiányzott neki!
(#) kiborg válasza Lamprologus hozzászólására (») Nov 26, 2022 / 1
 
Nekem is minden saját dolognak fix IP-je, mert a routeren be lehet állítani, hogy adott MAC címhez adott IP-t adjon. Ez a legegyszerűbb, egyszer kell a routert beállítani, többi minden alap DHCP, és nincs gond. (látom megoldódott, csak mint alternatíva)
(#) Skori válasza kiborg hozzászólására (») Nov 26, 2022 /
 
Így van, ennek kellene lennie az alapnak minden IP hálózatban. Fix IP csak speciális esetben (fix IP-jű eszközök számára elkülönített tartományból), dinamikus (véletlenszerű) IP kiosztás pedig az alkalomszerű kliensek számára (pl. mobil eszközök, vendég hálózat stb...).
(#) Massawa válasza Skori hozzászólására (») Nov 27, 2022 /
 
Azért felettébb érdekes, hogy az én DHCP halozatomban a router szinte kivétel nélkül ugyanazokat a cimeket adja a készülékeknek. Nemrégen egy nyomtatot cseréltem és csodalkoztam hogy a gép ugyanazt cimet kapta, mint mas markaju elödje. (27 gép van a halozatban)
(#) Skori válasza Massawa hozzászólására (») Nov 27, 2022 /
 
Ez egy "többlépcsős" dolog. Ha valaki nem foglakozik különösebben a konfigurálással, (vagy olyan a router, hogy nincs is benne elérhető erre vonatkozó részletes beállítás) akkor valamilyen belső logika alapján összerendeli a MAC címeket, egy-egy kiosztható IP címmel. A legegyszerűbb logika amikor sorban kiosztja a szabad IP-ket. A DHCP-vel kiosztott IP-nek van egy lejárati ideje (elvileg beállítható) ennyi időre kapja meg az IP-t az eszköz, utána újat kell kérnie (de lehet, hogy újra ugyanazt kapja). Van amelyik router alaphelyzetben is variál, hogy a szabad IP-ket milyen logika alapján osztja ki, és hogy éppen a tartomány elejéről, vagy a végéről ad ki IP-t. Jó esetben ez a kiosztás felülbírálható, és pl. össze lehet rendelni fixen egyes MAC és IP címeket.
Így az eszköz bár DHCP-vel kér magának IP-t, mindig ugyanazt a címet fogja megkapni.
A saját hálózatomban a lejárati időt 150 napra növeltem, így ha új eszköz kerül be a hálózatba, akkor az kb. fél évig biztosan mindig ugyanazt az IP-t fogja megkapni, és ha akarom akkor bőven van időm fix-re beállítani. Illetve minden MAC cím ott van a listában ami fél éven belül csatlakoztatva volt.
Amit írsz, az egyszerűen attól is lehet, hogy a korábbi eszköz IP címe felszabadult (elérte a lejárati időt) és amikor az új eszköz IP-t kért magának, akkor ezt a szabad IP-t kapta meg.
(#) Massawa válasza Skori hozzászólására (») Nov 27, 2022 /
 
Valoszinűleg igazad van, annyira nem akartam elmerülni a dologban.
Valamikor sok évvel ezelött voltak ilyen gondjaim, és akkor megcsináltam a cimek kiosztását.
Azota szolgáltatot cseréltem és azok meg már a 4. modemet/routert küldték, de azota nem volt ilyen gondom, csak a nyomtato cseréjénél tünt fel, hogy ugyanazt az IP-t kapta, és a PC-k stb. a hálozaton meg is találták.
A hozzászólás módosítva: Nov 27, 2022
(#) Keresztes Vitéz válasza asch hozzászólására (») Dec 2, 2022 /
 
Idézet:
„Idézet:
„Nem vagyok benne biztos de nem itt is arról van szó mint a millis-nél? Hogy átfordul és 32767 után azért jön -32768 mert átfordult és itt a -32768 lesz a legkissebb szám?”

De, erről van szó. Minden általam ismert platformon így van, a negatív számokat kettes komplemens ábrázolás szerint kezeli, és ebben így működik az átfordulás. De a C szabvány szerint ennek nem kötelező így lennie, és ha erre építve működik a programod, akkor nem garantált, hogy minden platformon helyes lesz.”


Jó, hogy ez előjött, mert pont most futottam bele micros()-t használva. Van erre elegáns megoldás?
Nem elegánsat találtam, de nem vagyok elégedett vele.
(#) sargarigo válasza Keresztes Vitéz hozzászólására (») Dec 2, 2022 /
 
Pár hozzászólással visszább ott volt a megoldás: bővebben link, nem gond a túlcsordulás: Bővebben: Link
Én még nem próbáltam, de elegánsnak mindenképpen mondanám
A hozzászólás módosítva: Dec 2, 2022
(#) Jonni hozzászólása Dec 3, 2022 /
 
Üdv

Egy nyomógombos feladatot kéne valahogy összehozni. Csak annyi, hogy ha megnyonyomom mondjuk button 1-et akkor léptessen egy változót egyel fölfele, de ha nyomva tartom mondjuk 2 másodpercig a nyomogombot akkor ne egyessével hanem százassával léptesse a változót amig el nem engedem. (14000 és 30000 közt akarom állitani nyomogombbal)


Lehet , hogy tele van a net ilyen mintapéldákkal de most nem találok egyet se
Következő: »»   755 / 838
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem