Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.02.2011, 03:44  
jakuchma
Частый гость
 
Регистрация: 19.10.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
jakuchma на пути к лучшему
По умолчанию Несчастный УАРТ

Помогите пожалуйста, как на асме правильно принять пачку данных. Есть два устройства на одном делаю запрос, второе мне отвечает. Шлется пачека из 30 байт мне надо с 16 по 21 записать в память.
Только сильно не пинайте я еще новичек, пока.
Принимаю так:
priem:
sbis UCSRA, RXC
rjmp PC-1
inc tresive
in RX, UDR
cpi tresive,30
brsh stop
cpi tresive,21
brsh propusk
cpi tresive,15
brsh zapis_dannih
propusk:
rjmp priem;
zapis:
st Y+, RX
rjmp priem
stop:
tresive,0
rjmp Mainloop

Принять-то принял даже записал в память, но тут засада если примет случайно вместо 30 например 40 байт, то при вызове приема продолжит с 31 до 40 байта, а не по новому с 0 по 30.
Реклама:
jakuchma вне форума  
Сказали "Спасибо" jakuchma
warel (27.06.2019)
Непрочитано 05.02.2011, 04:06  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Я делаю так
Пакет - это маркер,идентификатор, данные и контрсумма.

Маркер - ну, например, 0x55

потом идентификатор - что, собсно, принимаем, сколько байт и куда класть.

Данные - понятно.

Контрсумма - если вся посылка + побайтно == 0, то принятому верить - и данные из буфера - на место, и взвести флаг приема.

В упрощенном варианте идентификатора может и не быть.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Сказали "Спасибо" nml
warel (27.06.2019)
Непрочитано 05.02.2011, 04:28  
jakuchma
Частый гость
 
Регистрация: 19.10.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
jakuchma на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Сообщение от nml Посмотреть сообщение
Контрсумма - если вся посылка + побайтно == 0, то принятому верить - и данные из буфера - на место, и взвести флаг приема.
Вооот, как на асме взвести флаг приема. В моем примере он в буфер вгоняет весь пакет что принял, а мне надо только 30 байт. После 30 байта надо все рубануть и ждать нового пакета.
jakuchma вне форума  
Сказали "Спасибо" jakuchma
warel (27.06.2019)
Непрочитано 05.02.2011, 12:03  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Несчастный УАРТ

jakuchma, ты не понял, ты должен вначале принять весь пакет. оценить по контрольной сумме его достоверность, а уже потом заниматься разбором байтов.
__________________
В технике главное - кувалда. (с)
chapa вне форума  
Сказали "Спасибо" chapa
warel (27.06.2019)
Непрочитано 05.02.2011, 12:05  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Надо принимать по прерыванию. С каждым принятым пакетом инкременировать переменную - счетчик. Когда счетчик переполнен, поднять флаг (переменная типа бит), что данные получены. В теле программы опрашивать флаг.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (27.06.2019)
Непрочитано 07.02.2011, 00:29  
jakuchma
Частый гость
 
Регистрация: 19.10.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
jakuchma на пути к лучшему
По умолчанию Re: Несчастный УАРТ

А где можно почитать о прерываниях, желательно с примерами на ассемблере?
jakuchma вне форума  
Сказали "Спасибо" jakuchma
warel (27.06.2019)
Непрочитано 07.02.2011, 01:15  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Сообщение от jakuchma Посмотреть сообщение
А где можно почитать о прерываниях, желательно с примерами на ассемблере?
Судя по приведённому Вами примеру Вам сюда WWW.ATMEL.COM
kittec вне форума  
Сказали "Спасибо" kittec
warel (27.06.2019)
Непрочитано 07.02.2011, 01:52  
jakuchma
Частый гость
 
Регистрация: 19.10.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
jakuchma на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Сообщение от kittec Посмотреть сообщение
Судя по приведённому Вами примеру Вам сюда WWW.ATMEL.COM
а на русском?
jakuchma вне форума  
Сказали "Спасибо" jakuchma
warel (27.06.2019)
Непрочитано 07.02.2011, 08:25  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Несчастный УАРТ

Сообщение от jakuchma Посмотреть сообщение
а на русском?
Что именно непонятно? Пишите здесь
niXto вне форума  
Сказали "Спасибо" niXto
warel (27.06.2019)
Непрочитано 07.02.2011, 12:27  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Несчастный УАРТ

А на русском - ОШИБОК в переводах много. Так что читайте на англицком, особенно раздел ERRATA. А что не понятно, - милости просим сюда, добрые люди разжуют до буквочки.
__________________
В технике главное - кувалда. (с)
chapa вне форума  
Сказали "Спасибо" chapa
warel (27.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто по дзс1768 поможет? уарт не пашет индюк Микроконтроллеры, АЦП, память и т.д 0 14.01.2011 02:31


Часовой пояс GMT +4, время: 23:23.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot