- iPhone topik
- Motorola Edge 30 Neo - wake up, Jr...
- Samsung Galaxy Fit 3 - keveset, de jól
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S23 Ultra - non plus ultra
Hirdetés
-
Jó dolog az AI, de emberek nélkül nincs játékfejlesztés
it A Tomb Raider franchise tulajdonosa szerint egy dolog az AI térhódítása – de a sikeres játékfejlesztéshez emberi kreativitás kell.
-
Készül a Warhammer 40,000: Mechanicus 2
gp A folytatás PC-re és konzolokra készül, a megjelenési dátum egyelőre nem ismert.
-
Olcsó és visszafogottan elegáns kompakt AIO jön az ID-Cooling berkeiből
ph Az előzetes tesztek alapján korrektül teljesítő modellnek nem kenyere a cicoma, és akár titkos favorit is válhat belőle a kategóriájában.
-
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
-
Teasüti
nagyúr
Fura. Annak a relé modulnak pedig teljes körűnek kellene lennie, minden szükséges ellenállás és dióda látszik rajta. Esetleg ha van szkópod akkor érdemes volna rámérni a bemenetre milyen jelet is kap.
Előbb biztos a hibát keresném meg, mielőtt alkatrészeket vásárolnék.
Éles használatban meg tervezéskor gondoskodni kell az ESD védelemről is!
Ez minden kezelőszerv esetén minimum egy védődiódát jelent.[ Szerkesztve ]
-
Teasüti
nagyúr
ESD diódákat vagy chip-et ha az van, GND-re szokás kötni. Elhelyezni meg az interfész után közvetlenül kell.
Kapacitív érzékelők kapcsán olvashatsz sokat ESD-ről, ugyanakkor minden ember által fogdosott áramköri elemre tenni kell védelmet szabvány szerint.Árnyékolás is GND-re megy alapesetben, ha nem tévedek.
Én USB port beültetése kapcsán olvasgattam erről, ott nem egészen értettem a dolgot, mert megkülönböztetnek több GND-t is. Úgy tűnt az usb kábel árnyékolása GND2-re és GND3-ra kapcsolódik. Bármit is jelentsen ez. -
Teasüti
nagyúr
Nem. GND-t azt GND-re értem az áramkörön. Hálózati feszültséghez még annyira se értek, mint amit az alacsony feszültségű áramkörök kapcsán megtanultam, de nekem mintha úgy rémlene a védőföldnek nem az a szerepe, hogy te arra kösd rá az árnyékolást és a bypass diódákat. A védőföld az kizárólag érintésvédelemre szolgál tudtommal. De ne hallgass rám, majd vmelyik villanyos fórumtárs kiigazít.
-
Teasüti
nagyúr
Ez a protokoll.
Kihelyezett kapcsolókhoz, kezelőszervekhez, különösképp a kapacitív érzékelőkhöz bölcs döntés védelmet rakni arra a végére a vezetéknek. Ezen felül áramkorlátozó ellenállást. Bypass kondit szükség esetén még a kontroller felöli végére, hogy csökkentsük a zavarjelet.
A beépített védelem elbír 15 kV 1A ESD-vel üzemszerűen?[ Szerkesztve ]
-
Teasüti
nagyúr
-
Teasüti
nagyúr
Hali,
Elővettem megint az Arduino IDE-t hosszú idő után, felraktam a Core-t ESP32-höz, majd fordítom az utolsó programot, hogy minden megy-e még és azt kapom vissza, hogy a tárhely csak 131 KB.
Vmit biztos rosszul állítottam be, alaplapnak a sima "esp32 dev module" van kiválasztva és a 4 mega flash mellé. Emlékeim ha nem csalnak - és tuti nem csalnak -, akkor tuti nem használtam ki 97%-ra a program tárhelyet, ami inkább olyan 480 KB körül mozgott annó.
Mit kell buzerálni rajta, hogy nagyobbra partícionálja? Végig próbáltam a partíció sémákat is, mind 131 KB csupán. Ez így lóf.sz, még a RAM is 300 KB majdnem, mi a fenéért biztosít csak 130KB ROM-ot??
Köszi! -
Teasüti
nagyúr
válasz Teasüti #8448 üzenetére
Közben kikerestem a partíciós táblát, meg a boards.txt-t.
Nos, eléggé benéztem azt a 131 KB-ot, egy nulla lemaradt a végéről.
Vagyis nem hogy megvan a tárhely, de még jócskán több is, mint volt annó.
A programom foglal egy nagyságrenddel több helyet, mint korábban.
Na most ezt nem értem hogy, de mindegy.szerk: oké, emlékeim mégis csak csalnak.
A BT könyvtár eszi meg a program tárhely nagy részét, a BLE több mint 1 MB!!!
Viszont most nézem, hogy implementálva van a Classic Bluetooth az Arduino Core-ban!
Végre működik a bluetooth serial mindenféle hack nélkül!
És kevesebb helyet is foglal, az alapértelmezett partíció 75%-át foglalja csak el.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz ZTE_luky #8462 üzenetére
Próbáld ki az analóg bemenetet egy potméterrel! Zárjuk ki először a kontroller felőli hibákat!
Amúgy milyen tápot sikerült szerválni végül? Az 5.4V elég szokatlan.
WS2812b specifikációjában 5.3V szerepel, mint abszolút maximum. Szóval ne lepődj meg, ha majd elhaláloznak a pixelek! -
Teasüti
nagyúr
válasz ZTE_luky #8464 üzenetére
Elég komplikált dolognak tűnik nekem. Bár soha nem foglalkoztam audió jelfeldolgozással és az erősítők működése is ismeretlen világ nekem.
Úgy tűnik azon a modulon rajta van már az erősítő fokozat, remélhetőleg az analóg jele is 0-5V közé van eltolva.
Így a következő lépés az volna, hogy megfelelő tápfeszültséget adsz a rendszernek (usb bőven elég a ledek nélkül) és letekered a Gain-t a modulon, majd fokozatosan emeled amíg kellő mértékű jelet látsz a bemeneten (mondjuk írasd ki Serial monitorra ha nem tudod/akarod mérni)!szerk:
Hááát őőő ez nagyon úgy tűnik, hogy nem fog működni Arduinoval. Legalábbis az analóg része, ami se erősítve nincsen, se a DC offset nincs megoldva. Ez így felejtős.Viszont ha megépíted azt a kapcsolást, amit feljebb linkeltem az Instructables-ben, akkor jó lesz.
[ Szerkesztve ]
-
Teasüti
nagyúr
Mindig röhögni szoktam az ilyen ambiciózus kezdeményezéseken, hogy tanítsunk programozást óvodában, kis iskolában. Vhogy nem tudom elképzelni, hogy bármelyik gyerek érdeklődését felkeltené az a rengeteg meló, ami azzal jár, hogy akár csak bekössem a hc-06 modult egy Uno-ra, érteni a elektromos alapelveket hozzá, stb. Aztán bármilyen felületen szarakodni, hogy vmi, a gyerek számára értelmes eredmény szülessen.
Ebben a korban leszarják a gyerekek, majd apuka úgyis vesz olyan rc modelt, ami működik is!
Ellenpéldát egyet sem láttam még.Tvamos-t kéne megkérdezni, ha jól emlékszem ő régebben próbálkozott vmi Arduino RC Kit-tel, asszem robot autó volt.
Úgy emlékszem ott is csak apuka lelte örömét benne, már ha egyáltalán.
Lehet az is a fiókban porosodik.[ Szerkesztve ]
-
Teasüti
nagyúr
Nem olyan rossz ez a puzzle programozás, ez még nekem is tetszik!
App Inventor-ral melózok épp és piszok egyszerű (na jó, azért pár órát eljátszadoztam vele mire belejöttem) BT Serial alapú menüsoros alkalmazást készíteni vele úgy, hogy fingom sincs az Android működéséről (ahogy a linuxéról se, nem hogy programot írjak rá).Mondjuk azért vannak korlátai rendesen, pl amíg egy String parse függvényt Arduino-ban ujjgyakorlat összeraknom, addig ebben lesz.ptam magam mire összeállt amit szerettem volna. Persze kerülőutakkal tarkítva,
mert a "nyelv"-nek vannak fura hülyeségei (pl. fixen zárójelek közé rakja a String-eket kiíratáskor, ami külön mókás egy Split függvény esetén. )
De legalább nem kell megtanulnom Android alkalmazást írni.A HC-06-ot 30 sec bekotni, azt a fiam is megcsinalta
Na jó, de tudja mit miért csinált vagy egy tutorial-t követett?
Tudja mi az a fesz osztó és mire jó? Ismeri hozzá az elektromosság alapjait? Ki tudja számolni a szükséges ellenállásokat? Saját megfontolásából kötötte az Uno megfelelő portjaira a modul megfelelő lábait?
Azért én nem igazán arra céloztam, hogy bedugok 4 vezetéket 4 helyre mondjuk egy szemléletes rajzocska alapján vagy esetleg mert apa így mutatta.
Azért ezek a kérdések nekem sem voltak egyszerűek felnőtt fejjel, amikor elkezdtem ezt az egészet nulla szakirányú ismerettel.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Balázs1621 #8489 üzenetére
Eszközkezelőben látszik a programozó rendes leánykori nevén? Ha nem, driver hiba.
Látszik a programozó és jól kötötted be az ICSP lábakat? Nano kap áramot?
Nincs több ötletem. Nincs programozóm.
Esetleg próbáld meg egy másik Arduinoval programozni, ArduinoISP-ként! Ilyet már csináltam, ez zökkenőmentes volt.[ Szerkesztve ]
-
Teasüti
nagyúr
Tudtok ajánlani olyan 16 portos I2C I/O expander chip-et, amin a portok egy az egyben úgy működnek, mint egy tisztességes mikrokontrollerben? Gondolok itt push-pull kialakításra legalább 20 mA terhelhetőséggel current-source módban, esetleg kapcsolható fel-, lehúzó ellenállással.
PCF8575-tel terveztem idáig egy projektet amit az Arduino Playground ajánlott, de alaposabban tanulmányozva a chip-et úgy néz ki kuka lesz a dizájn az open-drain portok miatt. Megnöveli a szükséges alkatrészek és a csatlakozók számát a buta kialakítás.
Akkor már egyszerűbb keresni másik chip-et, mint átszabni az egész NYÁK tervet.Köszönöm!
[ Szerkesztve ]
-
Teasüti
nagyúr
Neeem, ez az IC maga lesz kihelyezve az uC-től vagy egy-másfél méterre (két másik I2C eszköz társaságában).
Szimplán csak azon okból, mert kellenek a plusz portok.
Hogy az 5V-os busz hogy fogja bírni a távolságot - ami miatt nem aggódok egyáltalán -, azt majd szkóppal ellenőrzöm.
Egy 5 méteres 300 ledes szalagon esik a fesz 1V-ot kb ha jól emlékszem. És ott azért nem kicsi áramok mennek. Az I2C buszon meg uA-mA tartományban vagyunk, nem számítok feszültségesésre. Kalkulátor szerint 2 méteren 5V 10mA 0,02%-ot esik. Szerintem kár aggódni. A busz kapacitása lesz inkább érdekes.
18 AWG becsléseim szerint 30-40 pF lesz a kellő hosszúságon.
Mindkét végén lesznek felhúzók és szintillesztők, abban bízom majd azokkal szépen be lehet hangolni a jelet.
De ha nagyon sokat esne, akkor még mindig megemelhetem a busz feszültségét is akár 12V-ra is. A mosfet-ek 20V-ig bírják elvileg (ha nagyon perverz akarok lenni, akár ráakaszthatnám a jármű elektromos hálózatára közvetlenül is a felhúzókat. Szerintem).[ Szerkesztve ]
-
Teasüti
nagyúr
Nagyon egyszerű. Túl sok a periféria. A 16 bites expanderen is be van kötve 15 port a motor kezelőszerveinek beolvasásához, két ledes nyomógombhoz, meg egy dupla usb töltő vezérléséhez.
Ehhez hozzájön még I2C buszon egy numerikus led kijelző és egy UV/IR/Light szenzor.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Tankblock #8519 üzenetére
Motor projekt. Dekor világításnak indult, de aztán kicsit felokosítom a gépet mindenféle vezérlésével. Pl saját tervezésű 5630 ledekből épített pwm vezérelt féklámpa 2000 lumenes fényerővel.
6 külön csatornán mennek a szalagok, és csak azért nem 8 mert ha jól értem az ESP32-t, akkor az RMT csatornákon zajlik a hardveres pulse counter is, amiből kell kettő a fordulatszám és sebesség jeladókhoz.
És miért van szétdobálva 6 csatornára? A fizikai kialakítás miatt. 4 különböző helyen vannak elhelyezve szalagok, ezen kívül az irányjelzők is ws2812b alapú RGB ledek lesznek. Hátul egy-egy 8 ledes stick, nyomtatott burkolattal. Elől meg még vizsgálom a lehetőségét vagy egy 120 led/m szalag elhelyezésének a fényszórókban, vagy egyedi formájú panel készítése 5050 RGB chip-ekkel.Persze megoldható lenne az egész hóbelebanc felfűzése egy láncba, de az nem volna praktikus. Na meg ws2812b lévén nem árt ha nem az egész lánc döglik meg egy pixelhibánál.
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Tankblock #8523 üzenetére
Az irányjelzők oldalanként össze lesznek fűzve, az nem nagy távolság. Előre/hátra nyilván külön ágakat húzok ki. Jó, hogy nem 20 méter vezetéket rakok fel a motorra, hogy mindent láncba fűzzek!
Ezért van ennyi GPIO, hogy használjuk őket.
A kódot nem bonyolítja nagyon. Most lesz 6 külön példány a szalagból, a számolása meg ugyanaz csak más változókba pufferelek.
Igen, erre fel lesz készítve a rendszer úgy mint a féklámpa esetében: van saját 555 vezérlés a panelen és átkapcsolható külső pwm vezérlésre. A prototípust még relé kapcsolja, de a végleges változaton már hardveres watchdog kapcsol át, amit a külső pwm jel etet.
Az indexek meg redundánsak lesznek, az RGB mellett lesz normál borostyán színű analóg led is, ami szintén átkapcsolható bármikor.
Az hogy nem legális... Nincs benne E betű, de ilyen huncutságokkal itt műszakin nem foglalkoznak amíg megfelelően látja el a feladatát - természetesen a teszt idejére minden extra funkció kikapcsol. Az előírásoknak meg megfelel, sőt meg is haladja majd teljesítményben.
A féklámpára pl 800 lumen a rendelet szerint a megengedett fényerő. Na ezt 40% kitöltöttségnél teljesíti a féklámpám. Na jó, a sötétített búra miatt jó lesz az nagyobbnak is, de érted.
Fogok látszódni verőfényes napsütésben is, meg ködben is.A BT az a telefonos vezérléshez kell. Leginkább csak a beállításokhoz, a legfontosabb funkciókra két nyomógombot helyezek el a kezelőszerveknél.
[ Szerkesztve ]
-
Teasüti
nagyúr
SW watchdog amikor az ESP32 újraindul, mert szarul írtad meg a programot és az egyik mag túl nagy időszeletet kap a program számolására és nem adja vissza a vezérlést az oprendszernek.
Atmel328p-n is lehet készíteni egyfajta SW watchdog-ot - van rá kész könyvtár is. Én sikerrel debug-oltam vele a programjaimat, amik megakadtak mondjuk egy végtelen ciklusban vhol.HW watchdog meg az, amikor egy külső chip a proci működését figyeli és ha az kifagy, akkor reset-eli a rendszert.
ESP32-n úgy rémlik van SW és HW watchdog is. Így az én esetemben csak meghibásodásról beszélhetünk.A HW watchdog-ot én egy monostabil 555 chip-el oldottam meg, amit a kontroller pwm jele triggerel és fent tart egy relét, ami a bemenetek közt vált (külső vagy belső pwm).
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Tankblock #8564 üzenetére
Van szkópod?
(#8566) xboy89
[link]
Mondjuk ami engem érdekelne, hogy vajon az ESP32 és az Atmel328p el van-e látva ESD védelemmel a QTouch interfészeken? Nem szoktam látni egy példában sem külön védelmet.
Nano-n volt ilyen projektem, ott gyakorlatilag egy darab vezetékkel működik a dolog egy ADC bemeneten. Ahogy látom ESP is pont ugyanazon az elven működik.[ Szerkesztve ]
-
Teasüti
nagyúr
Igaz, én raktam a vezeték végére egy darab rezet.
Ez másfél éve volt, azóta is vígan fut azon a Nano-n az ADCtouch library vagy mi a szösz.Touch sensor bármi lehet, aminek kellően kicsi a kapacitása, hogy mérhető kapacitásváltozást okozz a testeddel. Mondjuk 8 bites ADC-nél kicsi kapacitás kell, 12 bitesnél már talán meg lehet csinálni nagyobb dolgokat is, pl egy ledszalag aluminium sínjét monitorozni. 8 bitesnél ez hibahatáron belül volt.
Nekem még tetszik az elektromosan vezető festék is, azokkal is láttam sok érintő pados példát.(#8569) aryes
Abban a kapcsolásban a port le van húzva. Lehet érdemes volna kipróbálni egy kisebb lehúzóval, nem is értem miért kell oda ekkora ellenállás. (Elemes üzem?)
Viszont szkóppal meg kéne nézni a felfutó és lefutó éleket, én arra tippelnék hogy feszesebb lehúzó kellene.[ Szerkesztve ]
-
Teasüti
nagyúr
Hogyne lenne, ne szórakozz!
Szüleim csalódottak lesznek ha ezt meghallják, hisz másfél éve egy darab vezetéket fogdosva kapcsolgatják a konyhapult világítást.
Én gombot szerettem volna, de apám rá volt gerjedve az érintő kapcsolóra. Épp csak nem volt kéznél tisztességes interfész. A 2 méter alu sínt meg a 8 bites ADC nem érzékelte.[ Szerkesztve ]
-
Teasüti
nagyúr
Egy darab kanóc egy ADC porton, kanóc végén egy réz alátét.
Nagyon csúnya megoldás, de működik.
A sínhez nem csatlakozik, a kapacitásnak kicsinek kell maradnia, hogy érdemben meg tudja különböztetni a 8 bites mérés, hogy megfogtad-e vagy sem. Az alu sín kapacitása túl nagy, így nem okoz mérhető változást ha megfogod. 12 biten már talán mérhető lenne. -
Teasüti
nagyúr
Hideg-meleg fehér. Kinek mi tetszik. Szüleim a hideg fehér mellett voksoltak, azt hiszem 7000 Kelvinre volt beállítva. Mondjuk így ennyi idő elteltével megismertem a ledes világításokat kicsit közelebbről és már tudom, h ha világításra kell, akkor legközelebb vmi magas CRI indexű szalagot nézek. Az olcsó RGB dekornak jó, de látni nem igazán lehet vele jól.
ATX táp: olcsó és jó. Sok helyet foglal és forrasztani kell, de ezerszer inkább ez mint vmi kínai dzsunka led táp.
Azért egy ATX tápoknál kevés jobb minőségű és megbízhatóbb táp van a piacon már ha létezik egyáltalán. Persze ugyanabban az árban.
Nem beszélve, hogy mindenféle védelemmel van ellátva.
Én előszeretettel használok ATX tápokat.FB videóra más is panaszkodott, de nem mindenki. Érdekes. Nem tudom miért olyan válogatós az az oldal.
Elvileg public link.[ Szerkesztve ]
-
Teasüti
nagyúr
Laptop töltők azok harmatgyengék és általában 19V-on működnek. Na meg mit kezdjek 60-70 wattokkal, amikor egy 5 méteres 300 ledes szalag 90W?
Ehhez még kellene külön egy-egy DC-DC konverter, külön az uC-hez hisz a legtöbb uC-n a fesz. stab. elmelegszik 10V fölött.5V-os dugasztápból csak kínai van, és hát a 12V-osból is csak utángyártottat látok Ebay-en.
Esetleg márkás kompakt 12V led tápokkal lehet próbálkozni kisebb szalagokhoz (5V-os nincs), de abból a pénzből már ott van az ATX.
És annál jobb nincs, csak kisebb max.Hardverapróról vettem ehhez a projekthez 3000-ért nem túl öreg FSP tápot, ami 20/30 ampereket tud leadni.
És van benne túlfesz., túláram, hő, meg még tudja tököm milyen védelem.
Szerinted? Nem az volt a legfőbb szempont, hogy kicsi legyen. Elfér.[ Szerkesztve ]
-
Teasüti
nagyúr
Srácok!
ESP8266 kapcsán (Sonoff TH16) miért nem fut a feltöltött programom?
A feltöltés megy szépen, flash mód, feltölt, kész.
Viszont se kép se hang, Serial monitorban sincs semmi.
Vmi ötlet esetleg?A bekötés jó, az eredeti FW működőképes volt az Uno-ra kötve, volt wifi kommunikáció, villogtak a ledek, meg ami kell. RX/TX lábak megfelelő sorrendben. 3V3-ról kapja a delejt, Uno reset-re húzva így az UART port bypass az ESP-re kapcsolódik. Elvileg minden jó.
Lehet az alaplap beállítások nem jók, de ahhoz lövésem sincs. Túl sok a változó, netes útmutatókban nincs ennyi opció.
[ Szerkesztve ]
-
Teasüti
nagyúr
Az elérhető infók alapján ugyanaz a processzor, csak a 8266 + 1 MB flash kombót vmiért elnevezték 8285-nek.
(#8590) aryes
Nem az optimalizálás végett, hanem mert ha "illékonyként" deklarálod a változót, akkor nem a műveleti regiszterekben fogja tárolni amit akár számolás közben is felülírhat egy megszakítás, hanem a "lassú" ram-ban.
Ez gondoskodik a műveletek integritásáról és így a számítás pontosságáról: pl egy egyenletben kétszer kell beolvasni egy változót és a két beolvasás közt történik egy megszakítás ami felülírja a változót, akkor a második alkalommal beolvasott új érték pontatlanná teszi a számítást. Lehet a példa nem állja meg a helyét, de én is kb ennyit értek ebből.Jah illetve kettő vagy több bájtos változóknál érdekes, pl egy int16 esetében mikor az első felét beolvasta a függvény, majd megszakítás és mire a második feléhez jut, addigra felül lett írva és így kapsz egy tök random számot.
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Janos250 #8598 üzenetére
Semmit nem kell csinálni vele. Én csak az usb-soros chipet használom róla.
Az Uno le van húzva reset-re, így fel se boot-ol. Ellenben a TX/RX lábak bypass mennek tovább az ESP-re.Ennyi az egész:
Uno - 8266
3V3 - Vcc
RX - TX (5V toleráns az I/O lábakon)
TX- RX
GND - GNDUno-n: Reset -> GND
Gyakorlatilag USB-Soros konverterként használod a lapot.
IDE-ben meg egyértelműen az Uno Com portjára csatlakozol és alaplapnak meg az ESP-t állítod be.[ Szerkesztve ]
-
Teasüti
nagyúr
Azért kell reset-ben tartani az Uno-t, mert ugyanazon az UART porton van ilyenkor az Atmel328 és az ESP8266. Soros buszon meg nyilván nem lóghat egyszerre három eszköz.
Mondjuk szerintem az is jó, ha kikapod az IC-t a helyéről, de akkor már egyszerűbb bedugni egy darab vezetéket a reset-re.(#8605) aryes
Prózai oka van: nincs usb-soros konverterem. És miért vegyek külön, amikor van belőle minden usb képes lapon? A Nano-kon ott a CH340g, az eredeti Uno-mon meg tököm tudja mi. De működik szuperül.[ Szerkesztve ]
-
Teasüti
nagyúr
Srácok!
Olyasmibe botlottam amit egyáltalán nem értek hogy lehetséges, soha nem láttam még ilyet és semmivel sem tudom magyarázni.
Az alábbi kód részletben a debug kiíratás megváltoztatja a kiírni szánt adatot!!!void TubeDisplay::display(char *buf) {
uint8_t buff[5];
if (_debug) {
Serial.print(F("Data size: "));
Serial.println(strlen(buf));
Serial.print(F("Data: "));
}
for (uint8_t i = 0, j = 4; i < strlen(buf); i++) {
if (_debug) {
Serial.print(buf[i]);
Serial.print(F("="));
}
if (buf[i] != '.') buff[j--] = encode(buf[i]);
else buff[j + 1] += 128;
if (_debug) {
Serial.print(buff[j]);
Serial.print(F(" "));
}
}
if (_debug) {
Serial.println();
}
buff[0] = REG_DAT;
if (_debug) {
Serial.println(F("Displaying data:"));
for (uint8_t i = 0; i < 5; i++) {
Serial.print(buff[i]);
Serial.print(F(" "));
}
Serial.println();
}
Wire.beginTransmission(_addr); // transmit to device #8
Wire.write(buff, 5);
Wire.endTransmission(); // stop transmitting
}Ha
_debug = false
akkor más értékeket kapok a tömbben, mint hatrue
lenne.
Vagy ha kikommentelem a vége felé aSerial.print(buff[i]);
sort, akkor megváltozik a tömb.Hozzá kell tennem, hogy egy 4 digites I2C numerikus képernyőt hajt meg ez a függvény, és most épp azt tesztelgetem mi történik, ha kevesebb adatot kap a bemenet, mint amennyi bájtot küld a Wire.
Szóval a paranormális példában azok a bájtok változnak meg a kiíratásra, amiknek nincs értéke.
Ez jelent vkinek vmit?szerk: A megoldás pedig
uint8_t buff[5] = {0,0,0,0,0};
De nem értem az okát.
[ Szerkesztve ]
-
Teasüti
nagyúr
-
Teasüti
nagyúr
válasz vargalex #8621 üzenetére
Épp a Serial.print parancsokkal küzdök, ugyanis rendre megváltoztatják az adatot és teljesen kiszámíthatatlan hibákat okoz.
Van vmi ötlet miként lehet ennek a végére járni?
Megkérhetlek benneteket, ha van egy kis szabadidőtök, hogy lefuttatjátok ezt a programot?
A könyvtár elvileg bugmentes, azt csinálja amit szeretnék, stb.
Eredeti Uno R3-ason futtatom. (Mondjuk lehet ki kéne próbálnom másik lapon is.)
A setup()-ban a for ciklussal játszadozok most és teljesen inkonzisztens eredményeket ad nekem.
1. ha nem ismétlem a sprintf parancsot, akkor már a második alkalommal korrupt adatokat ad át a függvénynek.
2. A Serial.print(data) hibásan működik.
3. Ha a ciklus paramétereiben a temp változóhoz hozzáadok egy számot - hogy tovább fusson -, akkor az első pár ismétlés után egyszercsak azt írja ki a konzolra, hogy a ciklusszámláló értéke 132 és kilép a ciklusból.
Bárkinek bármi ötlete mi az ördög folyik itt?
3+ Ez esetben ha a temp változót volatile-nak deklarálom, akkor nem akad ki 132-vel.
Én ebből semmit nem értek.[ Szerkesztve ]
-
Teasüti
nagyúr
Az nem automatikusan kerül lefoglalásra?
Úgy tudom a globális változók kerülnek a ram elejére. A fent maradó terület úgy tudom a stack, amit a lokális változók használnak. De ezen mit növeljek, amikor a fordító szerint 1500 bájt szabadon van hagyva a memóriából?
Ez egy igen primitív program, futtattam már olyanokat is, amik a tár 100%-át foglalták és több mint kétharmad ram-ot és vígan futottak.Amúgy volt egy szemantikai hiba:
char data[8];
tömb méretét megnöveltem, de még így is produkálja a hibákat.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Microsoft Surface Pro 6 12.3" 2736 x 1824/i5 8350u/
- Legjobb ÁR!!!HP EliteBook 640 G9 Ezüst (14" / Intel i5-1235U / 16GB / 512GB SSD / Win 11 Pro)
- HP Probook 340S G7 i5-1035G1/8GB/256SSD/Windows 11
- MSI MAG274QRF-QD QLED Gamer Monitor!27"/2k/165hz/1ms/Freesync-Gsync/Type C/Konzolhoz is/Beszámítás!
- Sennheiser Epos H3 White Gamer Fejhallgató Eladó!
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen