BASCOM příjem dat z NEXTION

Ahoj. Začal jsem dělat pokusy s tímto displejem. Mám trochu problém s příjmem dat.
Pokud nadefinuju tlačítko aby při stisku odeslalo A a druhé B (zapnutí a vypnutí ledky) tak displej odešle pA a pB. No a tady mám problém s příjmem na straně MCU. Podotýkám, že seriovou komunikaci jsem zatím neměl potřebu využívat a tak v tom tápu.
Dělám to na ATMEGA32 a využívám HW UART.
Zprovoznil jsem to takto, ale přijde mi to těžkopádné:

Config Serialin = Buffered , Size = 2
declare sub LED
config portc.6=output
dim A as byte
Dim B as byte

portc.6=1

enable interrupts

DO
if Ischarwaiting() = 1 then
A=inkey()
waitms 5
B=inkey ()
call LED
end if
loop

LED:
if B=65 then
reset portc.6
end if

if B=66 then
set portc.6
end if

return

Musím dvakrát použít INKEY, poprvé vyčtu první znak v bufferu( to je to malé p) a podruhé užitečnou informaci A nebo B (65 nebo 66 assci)
pokud bude odesílaná informace delší, tak už to bude problém.
Je nějaká možnost najednou přečíst celý buffer?
Hraju si stí už několik hodin a nic.

Dík za rady T.

Preco by mala byt odosielana informacia dlhsia?

No zatím si s tím jen hraju a seznamuju se. Mám zatím jen ten nejzákladnější
displej, ale koukal jsem, že jsou i verze, které mají RTC a pod. Pokud bych
např. potřeboval zmáčknutím tlačítka odeslat do MCU čas (pokud to tedy jde)
tak ta inormace bude určitě delší.

Já si s tím taky hrál a co si pamatuju tak u tlačítka posíla 0x65,cislopage, id objektu, 0 - 1 dle stisku,0xFF ,0xFF ,0xFF.

No tlačítko jde nadefinovat v tom editoru, co má poslat. Stejně ale přidá před “p”. Takže když nadefinuju stisk tlačítka tak aby displej odeslal “A” odešle “pA”. Mě jde spíš o to, jak v BASCOMu přečíst celej buffer, po příjmu dat.

To máš pravdu, že si tam může člověk nadefinovat co chce.
S Bascomem ti nepomůžu, nikdy jsem si s ním ani nehrál ze zvědavosti.

S Bascomem ti tady asi málokdo poradí, ale z logiky věci bych místo

napsal

if Ischarwaiting() > 0 then

a uzavřel to do smyčky.

Nevím, jaké smyčky má Bascom k dispozici, ale napsal bych to nějak takhle :

index = 0 (nebo 1 - podle toho, co je první index pole)
while (Ischarwaiting() > 0)
    b[index] = readkey
    index = index + 1
end while

Nehledě k tomu, že pokud má Bascom nějakou knihovnu pro obsluhu UARTu, mohl by tam mít i nějakou rutinu k přečtení celého bufferu.

Prve data jasne hovoria co sa bude prijimat, tak sa zariad. Navyse je mozne z nextionu poslad xkrat data ktore potrebujes ci, vies na ktorej stranke v nextione si tak vies ake data odosielas. Hladas problem kde nieje. A v Bascome na to budes sam. Ale tvoja volba.


Keby admin zmenil aby boli povolene zip subory tak by som tu nieco aj nahral…

Taky jsem nepřišel na to jak, ale ono to nějak jde, uživatel M4RV sem nedávno jeden takový nahrál…

Taky jsem se to s tím Bascomem pokoušel vysvětlit, ale věří, že ne… Kdyby tu (a nejspíš i jinde) použil funkci vyhledávání a napsal to tam jako klíčové slovo, tak by asi věděl, že je tu sám - ale jak píšeš, a ve vší úctě, když to tak chce… Snad mi odpustí.

Nextion_display.zip (4.8 kB)
Pre inspiraciu