Отримання даних кадру в PIC18F4550

B

brucelee2

Guest
Привіт всім, Я працюю над особистим проектом для моєї кімнаті. Я HMI (Human Machine Interface), її 800 * 480 екран. Це роботи різних команд, які ви посилаєте його (я комунікаційний протокол і dataframe), використовуючи стандартний послідовний порт. Зараз: екран посилає кадр даних на мікроконтроллер на вказаний Швидкість передачі даних. Ці дані кадру виглядає приблизно так: (. Сенсорний екран коорд) 0xAA (початок) 0x73 (16 біт X коорд.) (16bit Y коорд) 0x33 0x3c 0xC3 Так Є тариф кількість біт переміщення, коли я натискаю на сенсорному екрані. ПІК має лише 8-бітний регістр У UART модуль я думаю. Так як же я отримую це кількість біт у змінній? (Підтримання швидкостей передачі ECT ...) Може бути переривання? Im використанням MIKROELECTRONIKA MikroC компілятора. Існує простий UART бібліотеки трохи, здається, 8 біт на час ...... З нетерпінням чекаємо від вас, хлопці! Ура, Брюс: D
 
Привіт, як фото USART модуля встановлено у 8 або 9 біт тільки й X / Y координати будуть відправлені до 16 біт даних, то єдиним способом я можу бачити це можна було б зробити, це написати власне програмне забезпечення послідовної зв'язку. Якщо ви шукаєте Bit трахаються ви знайдете деякі приклади, коли фішки закінчилися портів USART, або просто не мають USART, тому програмне забезпечення УСАПП повинні бути написані, щоб заповнити прогалину. Вони, ймовірно, все буде в 8-бітному режимі, але впевнений, що це допоможе вам, як зробити його acceprt 16 біт.
 
Ок спасибі за відгук. Я бачу MikroC Mikroelectronica має бібліотеку програмних UART, але знову ж тільки 8 біт handeling :-( .. Я думаю, мені доведеться спробувати banging'soon''немного: з думаю, буде дуже жорстким для великих кадрів даних .. .. Якщо хтось має деякі корисні Приклад (и) в С ласка, може у мене є копія.
 
Привіт, це датчик використовує SPI послідовний і посилає 12 біт даних пари в поперечнику. Праворуч на цій сторінці код C приклади, які можуть виявитися корисними. (Використовується датчик сам, але тільки на асемблері) http://www.sensirion.com/en/01_humidity_sensors/02_humidity_sensor_sht11.htm
 
Чи є один знає, як підійти трохи стукати? Чи повинна вона бути Somthing як: 1. Створення зовнішнього переривання, коли стартовий біт відбувається. 2. Початок таймер для зразка штир на 1 / 3 * 1/baudrate IE. 3 рази на біт. 3.Dissable переривань протягом цього часу. 4. зрушення бітів в 5.check змінних для стоп-біт 6.disable часу і повторного включення зовнішнього переривання Як це звучить?
 
Цілком можливо, що пристрій не повертає 16-бітове значення, а два послідовних значення 8-біт, покликаний бути об'єднані в 16-біт.
 
його відправляє його в 0x? 8 біт шестнадцатірічное значення, але великий потік відразу на зазначені швидкості передачі даних. тому я не можу цього процесу з фото UART модуль, а скоріше повинні inplement деяке програмне забезпечення, щоб зробити це. Bitbanging. Але як це зробити bitbanging те, що я повинен з'ясувати. Процес діаграма proceedures / Події допоможе я думаю,
 
Так що це HMI використовує "стандартний послідовний порт", але не стандартний послідовний протокол, тобто, не починати-біт, стоп-біт обрамлення. Як щодо part-/model-number?
 
Він використовує 8N1, так 8data біт, зупиняти і запускати біт, без біта парності. Я думаю, де їм плутати є те, що він буде посилати великий кадр даних. Але буде MCU зупинити HMI відправки наступного байта, якщо зареєструвати ще не читали мій вихідний код? Або HMI продовжувати .... : |
 
Або HMI продовжують ....
Так, якщо тільки обидві однолітків може використовувати апаратне рукостискання. Ір не повинні мати проблем читати вибух даних в буфер і обробляти їх пізніше, або навіть процес його на льоту - з підходящими програмування. Прийом даних у переривання UART є звичайним методом.
 
Існує команда тремтіння рук спрямовані HMI, але це не є апаратним. відправка 0xAA 0x00 0x33 0xC3 0x3c, где''0x00''является частиною тремтіння рук інше каркас. Є тільки 3 з'єднання з HMI -> Rx Tx Gnd. Naybe використання перерв routunes на виведенні Tx буде працювати!
 
Псевдо-код:
Code:
 Отримати переривання: якщо отримав символ Store "АА" в буфер Buffer_pointer + + ще Buffer_pointer = 0 Message_received = 0, якщо Buffer_pointer == length_of_message + 1 вимкнути приймач Message_received = 1 кінець переривання [/ код] .. . Відповісти частина здається простим, щоб не вимагають переривання, але це буде легко зробити, як тільки приймач з'ясували.
 

Welcome to EDABoard.com

Sponsor

Back
Top