Získání dat snímek do PIC18F4550

B

brucelee2

Guest
Zdravím všechny,

Im práci na osobním projektu do mého pokoje.Mám HMI (Human Machine Interface), jeho 800 * 480..Pracuje různých příkazů, které zašlete na to (I komunikační protokol a dataframe) pomocí standardní sériové spojení.Nyní:

Na obrazovce se odešle data rám mikrokontroléru na stanovenou míru Baud.Tato data rám vypadá asi takto:

0xAA (start), 0x73 (dotyková obrazovka Coord.) (16 bit X Coord.) (16bit Y Coord) 0x33 0x3C 0xC3

Takže tam je jízdné množství bitů pohybu, když jsem push dotykové obrazovky.

PIC má pouze 8 bitů registru v UART MODUL I GUESS.SO Jak mohu získat tolik bitů do proměnné? (Zachování přenosové rychlosti atd ...)Možná přerušení?Im pomocí MIKROELECTRONIKA MikroC překladač.Tam je jednoduchý UART Knihovna bit Zdá se, že 8 bitů najednou ......
Těšíme se na jednání od vás!Na zdraví,

Bruce: D

 
Ahoj,

Vzhledem k tomu, Pics USART moduly jsou stanoveny na 8 nebo 9 bitů a pouze x / y souřadnice jsou odeslána jako 16 databits pak jediný způsob, jak vidím, to by mohlo být provedeno, je napsat svůj vlastní software sériovou linku.

Pokud hledáte Bit bouchání najdete několik příkladů, kdy byly čipy došly porty USART, nebo prostě nemají žádnou usarts, tak software usarts musí být písemná a zaplnit tuto mezeru.
Pravděpodobně budou všichni v 8 bitovém režimu, ale jistý, že to bude vás o tom, jak udělat to acceprt 16 bitů.

 
Ok díky za tip.Vidím Mikroelectronica je MikroC má software UART knihovny, ale opět jen 8 bitů handeling

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Smutný" border="0" />

..Myslím, že nemocný si vyzkoušet některé''bit banging'soon: p.Myslíš, že jeho bude dost těžké pro velké datové rámce ....Pokud má člověk nějaký pěkný příklad (y) v C, prosím, může mít i kopie.

 
Ahoj,

Tento snímač používá SPI sériové a posílá 12 bitů data páry napříč.
Na pravé části této stránky jsou některé C příklady kódu, které by mohly ukázat jako užitečné.
(Použití senzoru sám, ale výhradně v assembleru)
http://www.sensirion.com/en/01_humidity_sensors/02_humidity_sensor_sht11.htm

 
Má někdo vědět, jak přistupovat k bit bouchání?

Mělo by to být somthing jako:

1.Vytvořit externí přerušení, když start bit dojde.
2.Start časovač pro vzorek pin do 1 / 3 * 1/baudrate tzn.3 krát za bit.
3.Dissable přerušit během této doby.
4.posun bitů v proměnné
5.check pro stop bit
6.disable času a re-povolit externí přerušeníJak to zní?

 
Je možné, že se přístroj vrátí ne 16-bit hodnotu, ale dvě po sobě následující 8-bitové hodnoty, by mělo být spojeny do 16-bitů.

 
jeho odešle 0x?8 hex hodnoty bit, ale velký proud najednou za stanovenou rychlost.takže nemůžu zpracovat s obrázky UART Module, ale mají k inplement nějaký software na to.Bitbanging.Ale jak to udělat bitbanging je to, co jsem se přijít na to.Proces Schéma proceedures / akce by pomohla Myslím, že

 
Takže to HMI používá 'standardní sériové připojení', ale ne standardní sériový protokol, tj.
Ne start-bit, stop-bit rámování.
Jak asi part-/model-number?

 
Využívá 8N1, tak 8data bitů, stop a start bit, bez parity bit.

Myslím, že pokud im zmatený je to, že pošle velký data rámu.Ale bude MCU zastaví HMI odeslání příští byte-li v rejstříku dosud nebyla přečíst můj zdrojový kód?Nebo bude HMI pokračovat ....<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" />
 
Tam je třesu rukou příkaz odeslaný do HMI, ale to není hardware.zasílání 0xAA 0x00 0x33 0xC3 0x3C, kde''0x00''je třesu rukou část zbytek je rámové konstrukce.Jsou zde pouze 3 připojení k HMI -> Rx Tx GND.Naybe pomocí pří routunes na pin Tx bude fungovat!

 
Pseudo-kód:

Kód:

Dostávat-přerušení:

pokud obdrželi znak 'AA'

Skladujte v bufferu

Buffer_pointer

jiný

Buffer_pointer = 0

Message_received = 0pokud Buffer_pointer == length_of_message 1

vypnout přijímač

Message_received = 1konec přerušení
 

Welcome to EDABoard.com

Sponsor

Back
Top