Fórum témák
» Több friss téma |
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Témaindító: Lamprologus, idő: Máj 5, 2016
Témakörök:
Akkor valahogy így:
A hozzászólás módosítva: Aug 29, 2016
Pontosan. Send string ("t0.txt="), send char (34) send string ("Valami"), send char (34) send char (255)...
Ez megvan. És a nextionban mit adok meg a txt-hez?
Már megvan ez is. Mostmár csak a fogadás a kérdés. A hozzászólás módosítva: Aug 29, 2016
A "t0" a szövegdoboz azonosítója. Megadod a betűtípust, a szövegdoboz méretét, helyzetét, egyéb paramétereit és azt, hogy max. hány karaktert kezeljen. A kisseb szám kevesebb RAM-ot fogyaszt. Ennyi. A szövegdoboz a fenti paramétereknek megfelelően fogja megjelníteni azt a szöveget, amit UART-on küldesz neki.
Ok már szinte minden működik csak még az mcu nem érti amit a hmi küld, ezt hogyan lehet feldolgozni?
Most jelenleg a következő kódra egye és három függöleges vonal illetve két függöleges vonal a válasz.
ez amúgy a nextionban a következő parancs:
A hozzászólás módosítva: Aug 29, 2016
Már a vétel is megvan de sokat téveszt illetve csak töbszöri gombnyomásra küldi elsőnek a 101-et tehát a 0x65-öt küldés. mivel tudnám ezt kiküszöbölni?
Mit küld helyette?
Azt konkrétan nem tudom mert direkt úgy lőtem be hogy ha 0x65-öt küld csak akkor értelmezem.
Közben ránéztem és sajnos a programomban vana probléma mert csak ott jelenik meg hibássan a tübbi helyen jó (logikai analizátor).
Én CCS-C-ben switch case vizsgálattal oldottam meg.
Persze ezen még van mit finomítani ... A hozzászólás módosítva: Aug 29, 2016
Ez még nekem bőven hátravan (flowcode-ban gyakorolok) de az a furcsa hogy ilyenek jönnek: 101 0 9 0 (ez jó), 101 0 17 0 (ez nem jó) pedig csak nyomkodom a gombot.
Most módósítottam és 200-ig figyelem nem csak 101-ig és teljesen véletlen számokat látok, olyan mintha a vételezett adat közepette kapcsolódna csak be.
Most pl 0 255 255 512. Az utolsó 3 karaktert nem figyelem. A hozzászólás módosítva: Aug 29, 2016
Most vizsgálom mind a 7 karaktert:
Nem tudok olyan lehetőségről, hogy újra küldje az adatokat...
Nézd meg logikai analizátorral mi jön. Ha a PIC nem ugyan azt "látja" akkor ott lesz valami bibi. A hozzászólás módosítva: Aug 29, 2016
512 ??? ez meg micsoda???????
8 bites adatok jönnek! max 255 lehet! Ha bejön egy karakter, vizsgáld meg mi az ... és olvasd be az összes karaktert, az első karakterből lehet tudni hogy összesen hány karakter fog érkezni ... Ha marad valami a pufferban amit nem olvasol ki az később gondot okozhat A hozzászólás módosítva: Aug 29, 2016
passz
vételezek egy karaktert soros porton majd kiírom az elcd-re mint uint
Ha lassítom a baud rate-t esetleg az nem segíthet?
milyen sebességgel megy most?
Nekem a gyári 9600-on hibátlanul működik ... más sebességgel még nem próbáltam.
Jelenleg (ebay logikai analizátor) mért érték 9615 oda vissza.
Szerintem akkora eltérés bőven belefér, abból nem lehet tévesztés!
A beérkezett adatokat, hogy fogadod, hogy tárolod? Ennek az 512-nek utána kéne nézni! 8 bitnél ilyen nincs!!! (Hacsak valamelyik bit fel nem vett egy 0 vagy 1 en kívül más értéket! ![]() A hozzászólás módosítva: Aug 29, 2016
A PIC -ben belső oszcillátort hasnálsz, vagy kvarcot?
Nekem a belsővel egy 16F690 esen voltak UART gondjaim. Minden bizonnyal nem annyira pontos a belső. Az 512 nem lehet byte os adat. Nem lehet, hor rossz típus van deklarálva és azért jönnek érdekes adatok? A hozzászólás módosítva: Aug 29, 2016
16f1939 és belső de folyamatosan méregetem és 9600 és 9615 között mozog a baud. illetve most mértem a frekit és az is jó
Ha jól sejtem ez az asm kód:
Ezt most találtam az asm kódban (semilyen programozási nyelvet nem ismerek):
ahha. úgy nézem, hogy ez a változó 2 byte -os. Tehát nem "Byte" típusnak hanem talán 16 bites "integer" típusnak van deklarálva.
Sosem késő egy nyelvet megtanulni A hozzászólás módosítva: Aug 29, 2016
SW UART? Ha igen, az a baj. Flowcode téveszt vétel esetén, nagyon. Használj HW UART csatornát, különben csak a dolgod nehezíted.
Az időm véges illetve van egy problémám (dis.....) ami erőssen gátol abban hogy tanuljak.
Naggyábból azért kilogikázom a dolgokat de ezért szeretem a flowcode-ot mert az csak logika. Visszatérve a problémához, ha nem intnek állítom be akkor nem olvasok csak nullát.
Igen sw csak az a problémám hogy necces most egy kész panelt átlőni hw-re de megnézem mit tehetek.
Ja ez a program de csak a teszt idejére. Mindig valamit tesztelek és így egyszerübb.
Pedig az Integer 16 bites, ráadásul előjeles.
http://www.matrixtsl.com/wiki/index.php?title=Variable_Types Bocsi, hogy így írok ki a linket, a tabletem valamiért most nem tolerálja a link gombot. |
Bejelentkezés
Hirdetés |