Fórum témák
» Több friss téma |
Nézd, az én szememet meg a sok figyelmetlen butaság bántja, amit már hozzászólásokon keresztül látok tőled! Csak arra reagálok, ami már akkora ordas butaság, hogy szó nélkül szerintem nem kéne elmenni mellette! Bocs, ha ez neked nem tetszik, de nekem sem az amit te művelsz itt.... Ahogy te akarod tesztelni egy hardver képességeit, azt úgy nem lehet! És ezzel gyakorlatilag szétoffolod a témát, mivel az nem visz senkit sem előrébb, hogy elhibázott módon bizonygatod az igazadat...
A digitalWrite függvénynek nézd meg a megvalósítását mielőtt sebességmérésre használnád (csak mert nem alkalmas rá, mivel kismillió utasítást csinál, hogy minden körülmények és előzmények mellett is működjön). A gpio_init funkciója: "Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO)". Ennek az arduino megfelelőjének a megkeresését rád bíznám, mert én nem használok arduino-t.
Köszi. Mit használsz, mert akkor azzal próbálnám ki.
Visual studio code / platformio / wizio pico. Itt tettem be linket, hogy mi alapján telepítettem a fejlesztői környezetet.
Elso nekifutasra nem nagyon talaltam megfelelo reszletes dokumentaciot, ahol pontosan kiderulne melyik utasitas mennyi oraciklus.
Az viszont nem tunik logikusnak, hgy egy modern mcu ne legyen kepes kepes egy menetben irni tobb gpio-t. Ha a regisztert tudja irni a mindegyik state machine at once, akkor logikus lenne hogy a portok is kovetik ezt egy mentben. RP2040 doksi Idézet: „ 3.5.6. GPIO Mapping Internally, PIO has a 32-bit register for the output levels of each GPIO it can drive, and another register for the output enables (Hi/Lo-Z). On every system clock cycle, each state machine can write to some or all of the GPIOs in each of these registers.”
Köszönöm, sikerült is összerakni, le is fordította, de a feltöltésnél már hibát adott:
*** [upload] UnicodeDecodeError : 'utf-8' codec can't decode byte 0xa0 in position 176: invalid start byte
Ki mondta, hogy nem tud? Nem értem egyes embereket, akik write only módban vannak itt és nem képesek 1-2 fórum oldalnyit sem visszaolvasni, mielőtt tovább fűzik a hülyeséget....
Itt világosan leírtam egyes regiszterek neveit is. De máshol is leírtam, hogy de, tudja az egy utasításban 30 IO láb írását! A hozzászólás módosítva: Júl 12, 2022
Szerintem pedig meg mindig errol megy a vita, ezert irtam azt amit. De olvasd vissza ha mar chat history-ra hivatkozol.
Előfordulhat.....
Azon gondolkodom, hogy mennyi értelme lenne használni ezt a procit úgy, hogy mellé még egy flash is kell, és lenne mellette egy fő proci?! Mivel ebbe így, kódvédelem híján csak bizonyos perifériális működést engedhetnék meg, a program lényegi része mindenképpen egy kódvédett procit igényelne még mellé... Necces....
Nincs itt semmilyen vita, valójában! Csak fantáziálgatások, és töketlen "mérések" alapján történő rinyálásokat látok...! Egy mérés ott kezdődik, hogy regiszter szinten van használva a hardver, lehetőleg asm lista kontroll alapon(hogy ténylegesen tudjuk, mit is csinál épp a proci), és szkópos időalap méréssel! A többi csak szócséplés...
Keverjük a dolgokat. A PIO nem SIO , az előbbiről indult a vita..
Élesben még nem próbáltam, emulátor kimenet. Látszik, hogy az out egy órajelre ír több pint is.
A hozzászólás módosítva: Júl 12, 2022
Én nem keverek semmit! Mind a kettőre reagáltam külön-külön! SIO és PIO oldalról is egyszerre lehet mind a 30 pint kezelni!
Ez egy példa egyébként, HUB75, innen:
Bővebben: Link
Az idáig nem volt kérdés, hogy lehet-e egyetlen órajellel több portot kezelni. Az elejétől fogva az a kérdés, hogy egy 8 bites párhuzamos portot milyen sebességgel képes kezelni és hogyan. Példaként az Atmel procinál használható kód megfelelőjét keresem.
DDRD=255; uint8_t counter=0; while(1){ PORTD=counter; counter++; } A state machine használata ebben az esetben túl lassú, mert shifteli az adatot. A SIO pedig 2 külön busszal kapcsolódik a magokhoz, nem a memória buszon keresztül, további működéséről nem találtam infót, ami a kiírás sebességére vonatkozna. Szóval az lenne a kérdés, hogy egy 8 bites párhuzamos port 0. bitjén mekkora frekvencia mérhető. Ez 16 MHz-es Arduino Nano-nál 795 kHz. De mennyi egy Pi Pico-nál? Amúgy nagyon szivesen kipróbálok bármilyen példaprogramot, de sajnos miután telepítettem a wiziot, azóta minden feltöltésre UTF-8-as hibát ad a VS Code. Még nem találtam rá megoldást.
Az utf8 az a karakterkódolás, írts ki mindenhonnan minden ékezetes betűt, a forrásból, és a könyvtárnevekből, pláne ha ha a felhasználói nevedben is van, akkor lehet új felhasználó alá kell költöznöd. Csak úgy gondolom....
Igen, én is ezt találtam megoldásnak ahogy keresgéltem, hogy a pyton könyvtárak nagyon nem szeretik a "különleges" karaktereket, hiába viszonylag gyakori hiba, jó sok találatot láttam a neten, általános megoldást nem találtam rá. És mivel nemrég lett új gépem és ismerős vette/rakta/installálta, ahogy megláttam, hogy a felhasználó névnek Józsi-t adott, fogtam is a fejem, de gondoltam, csak vannak már annyira fejlettek a rendszerek, hogy nem lesz vele gond. Hát úgy tűnik, hogy lett
Egy próbára átálltam a micropythonra. (Linux, Thonny) Itt nem mérek, kb. Arduino szint vagy rosszabb. Ha megjön a másik pico, erre térek vissza, akkor lemérem. Leírás szerint VS code, C/C++ Extension Pack, SDK, Linux.
Bővebben: Link
Nálam ez 8 MHz, maszkolással együtt, mivel 8 bitet kértél.
Köszönöm, ez az. A 0. biten 7,78 Mhz-et mérek.
Kipróbáltam VS Code-al és Arduino Ide alól is és ugyanazt az eredményt kaptam. Ez remek!
Hát a maszkolás már csak ilyen. Harmadolja/negyedeli a sebességet. Ha megnézed a függvény kódját ki is jön:
Egy periféria olvasás, majd kizáró vagy kapcsolat, aztán egy és kapcsolat majd egy periféria írás. Ha minden áron kell a nagy sebesség és lehetséges, érdemes úgy megtervezni a hardvert, hogy ne kelljen maszkolni. Pl. a többi láb legyen más perifériára beállítva (pl. spi, i2c stb), vagy legyen bemenet. Ha kell alacsony sebességű kimenet, ahhoz meg használhatunk i2c buszos portbővítőt. Vagy használjuk a PIO perifériát. A PIO változathoz itt lehet példát találni.
uint8_t-nak adtam meg a count-ot, lehet, hogy kellett volna kapnom egy warning-ot? Mindenesetre a ciklusba betett egy plusz UXTB utasítást ez miatt, a maszkoláson kívül. uint32_t esetén nincs.
Üdv Mindenkinek!
Végig olvasam a topikot, két oldal esetén még nem nehéz, nekem sokkal földhözragadtabb kérdéseim lennének. Nemrég kezdtem tanulni a pythont hogy tudjak magamnak (nyugdíjas lét) desctopp programot írni, ne csak böngészőből használhatót. A python miatt lett érdekes számomra a Pi Pico is. A környezet: debian 12, és Thonny. A "kezdő" LED villogtatással nincs gond de azon kívűl két netről szedett programmal próbálkoztam. Az egyik a karakteres LCD-I2C-s program, Ez elindul, de a példa 2x16-os, nekem 4x20-as van, és úgy tűnik a sor/oszlop beállítás nem igazán működik, változik, de akkor is rossz. De legalább megy. A másik 0,96-os OLED program, aminél el sem indul, hibát jelez. De valójában az egyik kérdésem a következő. Beállítási kérdés, vagy ez helyből ilyen, hogy amíg megy a program OK, de ha megállítom, nagyon rövid időn belül eldobja a kapcsolatot a számítógéppel, és olyankor csak úgy tudom újra indítani, ha a pytron rendszert újra rátöltöm. A forrás rajta marad. Tudok ezen változtatni? A másik kérdés, láttam, hogy valaki linkelte, de nem tanulmányoztam a vscode-os telepítést. Még nem próóbáltam, de amúgy a vscode-ot több dologra is használom (html/javascript/css, STM32/platformio). Érdemes ehhez is megpróbálni? Esetleg megszűnne a gyors lecsatlakozás?
Válaszolok magamnak, egyrészt nem tudom, hogy ki tudnám-e törölni a kérdéseimet, másrészt hátha idetéved más kezdő is, és hasznos lesz esetleg neki is.
Találtam egy jó leírást, mit kell telepíteni a vscode-ban, hogy ezt a mikrocontrolert szóra bírjuk a vscode-al. És rádugva a gépre a boot gombos varázslat nélkül egyből működött a kis mintaprogram. Vscode Thonny 1:0! Számomra további előny, hogy a Thonny-val csak a kísérletező gépemen ment, mert a napi használatún egyel régebbi Debian fut, és azon a Thonny régebbi verziója még nem tudja kezelni ezt a procit, a Vscode mag igen.
A vscode (azaz mac-en csak code) ugy altalaban jol hasznalhato, a platformio pedig roppant hasznos kiegeszito. Gyakorlatilag eddig mindent is tudtam vele programozni, meg is szerettem, pedig regebben nagy jetbrains felhasznalo voltam
Használom egy ideje. Először STM32/platformio/C++, majd php/html/javascript/css, és újabban a python tanuláshoz is.
Érdemes asm kimenetet kérni a fordítótól, hogy lássuk sikerült-e minden fölösleget elkerülnie? gcc esetén -S kapcsoló, és az ASM lista külön fájlba kerül, amit meg lehet nézni.
A maszkolás elkerülésére egy trükk lehet, ha a program az össze használt kimenetet számon tartja egy regiszterben (vagy globális változóban), és akkor azt az egy regisztert bármikor kiírhatjuk.
Üdvözletem!
Programozza ezt az ittlévők közül valaki micropythonban? Én pythonban kezdő vagyok, érdekes "hibára" (?) találtam, nem tudom eldönteni, hogy ez hiba, python vagy micropython tulajdonság, vagy csak valamit nem veszek észre. Ha van pythonban programozó, akkor persze leírom, hogy mit tapasztaltam. A környezetet azért most is leírom: Lenovo T430S notebook, Debian 11 KDE-vel, vscode micropico kiegészítéssel.
Üdv Mindenkinek!
Eredetileg pont azért szúrtam ki a Pi Picot, mert épp elkezdtem pythont tanulni, egy jó eszű, de csak a telefont nyomkodó kiskamaszt szeretnék tanítani programozni, ha már kütyü, de legalább az eszét is használja. Izgatott a Piconál az is, hogy van wifis változata is, azzal nekem is vannak terveim. És ha a kiskamaszt esetleg érdekli, akkor talán kicsit mikrokontrolerezni is tanítanám, de talán nem a C++ az ideális kezdő nyelv. Voltak problémáim a micropythonnal, de szerencsére megtaláltam a választ, már el tudom indítani a neten található példaprogramokat. Most inkább azt szeretném kérdezni, hogy C++ esetén van-e, ha igen mit keressek, olyan library, mint az STM32-nél a HAL meg az LL? |
Bejelentkezés
Hirdetés |