Fórum témák

» Több friss téma
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Lapozás: OK   5 / 50
(#) Kovabe válasza Bakman hozzászólására (») Aug 29, 2016 /
 
Akkor valahogy így:
  1. t0.txt=34Valami34
  2. 255
  3. 255
  4. 255
A hozzászólás módosítva: Aug 29, 2016
(#) Bakman válasza Kovabe hozzászólására (») Aug 29, 2016 / 1
 
Pontosan. Send string ("t0.txt="), send char (34) send string ("Valami"), send char (34) send char (255)...
(#) Kovabe válasza Bakman hozzászólására (») Aug 29, 2016 /
 
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
(#) Bakman válasza Kovabe hozzászólására (») Aug 29, 2016 / 1
 
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.
(#) Kovabe válasza Bakman hozzászólására (») Aug 29, 2016 /
 
Ok már szinte minden működik csak még az mcu nem érti amit a hmi küld, ezt hogyan lehet feldolgozni?
(#) Kovabe válasza Bakman hozzászólására (») Aug 29, 2016 /
 
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.
  1. 0x65 0x03 0x01 0x00 0xff 0xff 0xff

ez amúgy a nextionban a következő parancs:
  1. page Belépés
A hozzászólás módosítva: Aug 29, 2016
(#) Kovabe hozzászólása 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?
(#) Lamprologus válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
Mit küld helyette?
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
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).
(#) Lamprologus válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
Én CCS-C-ben switch case vizsgálattal oldottam meg.
  1. switch (Nextion_kuldott_string[0])
  2.     {
  3.         case 0x00:      Nextion_hibauzenet="Hibás parancs";
  4.                     Nextion_hibauzenet_jott=1;
  5.                     break;
  6.         case 0x01:      Nextion_hibauzenet="Parancs végrehajtva";
  7.                     Nextion_hibauzenet_jott=1;
  8.                     break;
  9.         case 0x03:      Nextion_hibauzenet="Hibás oldal azonosító";
  10.                     Nextion_hibauzenet_jott=1;
  11.                     break;
  12.         case 0x04:  Nextion_hibauzenet="Hibás kép azonosító";
  13.                     Nextion_hibauzenet_jott=1;
  14.                     break;
  15.         case 0x05:      Nextion_hibauzenet="Hibás font azonosító";
  16.                     Nextion_hibauzenet_jott=1;
  17.                     break;
  18.         case 0x11:      Nextion_hibauzenet="BaudRate beállítás hibás";
  19.                     Nextion_hibauzenet_jott=1;
  20.                     break;
  21.         case 0X12:      Nextion_hibauzenet="Görbe adatok hibásak";
  22.                     Nextion_hibauzenet_jott=1;
  23.                     break;
  24.         case 0X1A:      Nextion_hibauzenet="Változónév hibás";
  25.                     Nextion_hibauzenet_jott=1;
  26.                     break;
  27.         case 0X1B:      Nextion_hibauzenet="Változó adat megadása hibás";
  28.                     Nextion_hibauzenet_jott=1;
  29.                     break;
  30.         case 0X1C:  Nextion_hibauzenet="Hozzárendelési hiba";
  31.                     Nextion_hibauzenet_jott=1;
  32.                     break;
  33.         case 0X1D:      Nextion_hibauzenet="Parancs végrehajtási hiba";
  34.                     Nextion_hibauzenet_jott=1;
  35.                     break;
  36.         case 0X1E:      Nextion_hibauzenet="Paraméter mennyiség hiba";
  37.                     Nextion_hibauzenet_jott=1;
  38.                     break;
  39.         case 0X1F:      Nextion_hibauzenet="írás/olvasási hiba";
  40.                     Nextion_hibauzenet_jott=1;
  41.                     break;
  42.         case 0X65:      Nextion_Komponens_erintes.lap=Nextion_kuldott_string[1];                // Képernyö komponens érintés adatok            
  43.                     Nextion_Komponens_erintes.komponens=Nextion_kuldott_string[2];
  44.                     Nextion_Komponens_erintes.esemeny=Nextion_kuldott_string[3];
  45.                     Nextion_Komponens_erintes_erkezett=1;
  46.                     break;
  47.         case 0x66:  Nextion_aktualis_lap=Nextion_kuldott_string[1];                         // aktuális lap száma
  48.                     Nextion_lapvaltas_jott=1;
  49.                     break;
  50.         case 0X67:  Nextion_Kepernyo_erintes.x=make16(Nextion_kuldott_string[2],Nextion_kuldott_string[1]);            //Képerny? érintés adatok
  51.                     Nextion_Kepernyo_erintes.y=make16(Nextion_kuldott_string[4],Nextion_kuldott_string[3]);
  52.                     Nextion_Kepernyo_erintes.esemeny=Nextion_kuldott_string[5];
  53.                     Nextion_Kepernyo_erintes_erkezett=1;
  54.                     break;
  55.         case 0X68:  Nextion_Kepernyo_erintes_alvo.x=make16(Nextion_kuldott_string[2],Nextion_kuldott_string[1]);            //Képerny? érintés alvó módban adatok
  56.                     Nextion_Kepernyo_erintes_alvo.y=make16(Nextion_kuldott_string[4],Nextion_kuldott_string[3]);
  57.                     Nextion_Kepernyo_erintes_alvo.esemeny=Nextion_kuldott_string[5];
  58.                     Nextion_Kepernyo_erintes_alvo_erkezett=1;
  59.                     break;                        
  60.         case 0X70:      i=0;                            // String változó adatok küldése
  61.                     do
  62.                     {
  63.                         Nextion_string[i]=Nextion_kuldott_string[i+1];
  64.                         i++;
  65.                     }
  66.                     while ((Nextion_kuldott_string[i]==0xFF) & (Nextion_kuldott_string[i+1]==0xFF) & (Nextion_kuldott_string[i+2]==0xFF));
  67.                     Nextion_string[i+1]="";
  68.                     Nextion_szoveg_jott=1;
  69.                     break;
  70.         case 0X71:  Nextion_kuldott_szam=make32(Nextion_kuldott_string[4],Nextion_kuldott_string[3],Nextion_kuldott_string[2],Nextion_kuldott_string[1]);                    //Numerikus változó adatok küldése
  71.                     Nextion_szam_jott=1;
  72.                     break;
  73.         case 0X86:      Nextion_uzenet="HMI automatikusan alvó üzemmódba lépett";
  74.                     Nextion_uzenet_jott=1;
  75.                     break;
  76.         case 0X87:      Nextion_uzenet="HMI automatikusan kilépett az alvó üzemmódból";
  77.                     Nextion_uzenet_jott=1;
  78.                     break;
  79.         case 0X88:      Nextion_uzenet="Sikeres rendszer indítás";
  80.                     Nextion_uzenet_jott=1;
  81.                     break;
  82.         case 0X89:      Nextion_uzenet="Frissít az SD kártyáról";
  83.                     Nextion_uzenet_jott=1;
  84.                     break;
  85.         case 0XFE:      Nextion_uzenet="Adat átvitel kész ?";
  86.                     Nextion_uzenet_jott=1;
  87.                     break;
  88.         default:
  89.  
  90.                     break;        
  91.     }       //switch


Persze ezen még van mit finomítani ...
A hozzászólás módosítva: Aug 29, 2016
(#) Kovabe válasza Lamprologus hozzászólására (») 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.
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
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
(#) Kovabe hozzászólása Aug 29, 2016 /
 
Most vizsgálom mind a 7 karaktert:
  1. 255 255 512 512 512 512 512
(#) Kovabe hozzászólása Aug 29, 2016 /
 
Olyat lehet hogy ujra kérem az adatot valami parancsal?
(#) Lamprologus válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
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
(#) Lamprologus válasza Kovabe hozzászólására (») 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
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
passz
vételezek egy karaktert soros porton majd kiírom az elcd-re mint uint
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
Ha lassítom a baud rate-t esetleg az nem segíthet?
(#) Lamprologus válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
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.
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
Jelenleg (ebay logikai analizátor) mért érték 9615 oda vissza.
(#) Lamprologus válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
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
(#) Elektro.on válasza Kovabe hozzászólására (») 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
(#) Kovabe válasza Elektro.on hozzászólására (») 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ó
(#) Kovabe válasza Lamprologus hozzászólására (») Aug 29, 2016 /
 
Ha jól sejtem ez az asm kód:
  1. MOVLW 0x01
  2.         MOVWF FCD_RS2320_00083_arg_nTimeout
  3.         CALL FCD_RS2320_00083
  4.         MOVF CompTempVarRet2318, W
  5.         MOVLB 0x00
  6.         MOVWF gbl_FCV_KIJEL
  7.         MOVF CompTempVarRet2318+D'1', W
  8.         MOVWF gbl_FCV_KIJEL+D'1
(#) Kovabe válasza Elektro.on hozzászólására (») Aug 29, 2016 /
 
Ezt most találtam az asm kódban (semilyen programozási nyelvet nem ismerek):
  1. gbl_FCV_KIJEL3                   EQU    0x0000004E ; bytes:2
(#) Elektro.on válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
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
(#) Bakman válasza Kovabe hozzászólására (») 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.
(#) Kovabe válasza Elektro.on hozzászólására (») Aug 29, 2016 /
 
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.
(#) Kovabe válasza Bakman hozzászólására (») Aug 29, 2016 /
 
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.

rs232.fcf
    
(#) Elektro.on válasza Kovabe hozzászólására (») Aug 29, 2016 /
 
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.
Következő: »»   5 / 50
Bejelentkezés

Belépés

Hirdetés
XDT.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