Interaktiva LED öl Pong tabell (83 / 87 steg)
Steg 83: Programvara: RF-läge: Data förpackning
I det här steget. Vi kommer att göra en fullständig genomgång av hur ett paket med data från PC får överföras till tabellen öl pong. Se till att använda flödesscheman och kommandot tabeller som jag har lämnat i det här steget kommer de förmodligen hjälpa dig mer än den skrivna texten i det här steget.
Överför data från datorn till RF Master styrelsen
Alla data som överförs från PC till PIC18F4550 i RF Master styrelsen överförs i 64 byte paket. Om vi måste skicka 3 byte data eller 64 byte data, skicka vi alltid ett full 64 byte paket. USB-koden faktiskt skickar 65 byte, men en byte är rapport-ID och vi använder inte den.
Varje gång vi inleda ett kommando och skicka data till RF Master styrelsen, kommer de första två byten av de första paketet att användas att avgöra vilken funktion som vi kommer att uppdatera på bordet. Detta innebär att efter kommandot byte, vi har bara upp till 62 byte av rådata från den enda paketen. Om vi måste skicka mer än 62 byte av rådata, tvingas vi skicka en annan USB-paket när de första paketet har tagits emot. Det enda kommandot som måste göra detta är kommandot uppdatera rutnät.
Hantering av data från datorn och skicka den till tabellen öl pong
NRF24L01 +-modulen har en maximalt nyttolast på 32 byte. Detta betyder att för varje 64 byte paket som vi får från datorn, kommer vi att skicka två 32 byte RF paket att överföra alla uppgifter (det är om vi behöver använda mer än 32 byte. Om vi använder 32 byte eller mindre från USB paket då vi bara behöver skicka ett 32 byte RF paket). Kommandona Update ringar, aktivera RF-läge och inaktivera RF-läge finns i en 64 byte paket från datorn, men ser som vart och ett av dessa kommandon använda mindre än 33 byte data vi kan passa alla uppgifter som vi behöver i en 32 byte RF paket.
Som för andra kommandon, vi överföra bara de första 32 byte RF-paketet, vänta på en ACK från RF slav styrelsen och sedan överföra den andra 32 byte paket som innehåller de sista 32 byte data från det mottagna USB-paketet. Det är det, resten sköts av tabellen öl pong.
Ta emot data från RF Master styrelsen
Efter att ha fått ett paket från RF Master styrelsen, kommer tabellen öl pong separat de första två byten i paketet till en 16-bitars variabel. Denna variabel innehåller kommandot värde som berättar i öl pong tabell vilka funktionen uppdatera. En gång öl pong tabell siffrorna ut som kommandot skickades, det kommer att vänta tills mer data att komma fram om det finns fler kommer, då det kommer att tolka den mottagna datan och uppdatera vilken funktion valdes.
Obs:
Värdena för LED rutnät ljusstyrka och bläddra hastigheten överförs med kommandot uppdatera ringar.
För kommandot uppdatera rutnät och uppdatering ringar, är 16-bitars värdena packat in i två separata byte i little endian format. Var och en av deras packade datadiagram visar ett exempel på hur data är packad.