sibiriak Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 (изменено) Доброго времени суток. Начнем! Есть ПК , есть atmega16 , есть переходник USB UART из аппаратуры это все. Написана программа дла работы с ком портом , которая отлично работает. ДАННЫЕ------->ПК------->переходник------->atmega16 в идеале загорается светодиод если данные пришли без потерь Но в том то и дело что данные приходят иногда не приходят иногда приходят с пятого, седьмого, пятнадцатого раза настройки соединения USART в atmega16 // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; Настройки в программе такиеже 8 дата 1 стоп NO PARity режим асинхронный есть предположение что нужно соединить общий провод на переходнике и atmega16 код приема данных // USART Receiver interrupt service routine interrupt [uSART_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; nomer_bita++; x[nomer_bita]=data; if(nomer_bita==5) { nomer_bita=0; } if((x[1]=='1') && (x[2]=='2') && (x[3]=='3') && (x[4]=='4') && (x[5]=='5')) { PORTA.7=1; } else { PORTA.7=0; } if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) { rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256 // special case for receiver buffer size=256 if (++rx_counter == 0) { #else if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; #endif rx_buffer_overflow=1; } } } внимание вопрос как избежать данного бага потери данных? Изменено 9 сентября, 2014 пользователем IMXO 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость / Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 UART, это далеко не СОМ. Вот если добавить преобразователь на МАХ 232, то почти . 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Реле, вентиляторы, корпуса, разъемы, а так же любые электронные компоненты в нашем каталоге! Бесплатная доставка + 15% кэшбэк + скидки!Перейти на сайт ТМ Электроникс Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Геннадий Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 внимание вопрос как избежать данного бага потери данных? Думаю, так: есть предположение... нужно соединить общий провод на переходнике и atmega16 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
IMXO Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 массив использовать как стек , проверку стека делать по приходу контрольного символа "возврат коретки" или редко используемых символов типа "ё" или нет? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке. Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
sibiriak Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 проблема толи в настройках толи в проводах в протеусе виртуально все работает 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Литиевые батарейки и аккумуляторы от мирового лидера EVE в КомпэлКомпания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
IMXO Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 в протеусе виртуально все работает сомневаюсь... достаточно отправить посылку 112345 , и усе... алес капут... дальше можете сколько угодно отправлять правильную посылку ответом будет тишина.... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
sibiriak Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 я переписал на стандартные функции четчар путчар вроде лучше но потери идут где не пойму 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 проект протеза выложи 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
sibiriak Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 выяснилось что микроконтроллер после принятия символа перезагружается что делать? умная дача 2.rar 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
sibiriak Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 с зависанием камня разобрался функция передачи была испорчена мной)))) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Написана программа дла работы с ком портом , которая отлично работает. прога не работает.... 1. нормальный прием данных с юарта возможен или через прерывания или программными методами в режиме постоянного ожидания... о программном методе(это ваши стандартные функции четчар путчар) можете забыть сразу...вам еще кучу переферии обслуживать... 2. стандартные библиотеки общения с терм.датчиками отключают вызов прерываний на время формирования временных интервалов для общения с датчиками... это надо учитывать при работе с юартом... 3. ну и при приеме с юарта пользуем стек размером кодовой посылки... а также сообщаем на ПК о готовности приема и/или ошибок при приеме посылки 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
sibiriak Опубликовано 10 сентября, 2014 Автор Поделиться Опубликовано 10 сентября, 2014 короче нужен протокол передачи нанных. Это решает часть проблем. переписать функцию получения данных например так: if (rx_counter>0) { x=getchar(); if (x=='1') { migalka(5); } putchar(x); x=0x00; } это не подвесит прогу и я уже проверил в протеусе через раз работает)))) какиенибуть примеры к советам будут где чего почитать и так далее 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 10 сентября, 2014 Поделиться Опубликовано 10 сентября, 2014 у вас в пост1 был вполне нормальный код нужно просто nomer_bita++; x[nomer_bita]=data; if(nomer_bita==5) { nomer_bita=0; } заменить на x[1]=x[2]; x[2]=x[3]; x[3]=x[4]; x[4]=x[5]; x[5]=data; тем самым вы получите сдвигаемый стек... при проверке условия совпадения посылки первым проверяется x[5]=='5' , дабы не выполнять лишних проверок, 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 10 сентября, 2014 Поделиться Опубликовано 10 сентября, 2014 попробуйте этот код в железе... 1234←┘ - включить пин 0000←┘ - выключить пин fgk.rar 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
sibiriak Опубликовано 11 сентября, 2014 Автор Поделиться Опубликовано 11 сентября, 2014 походу работает. Я детально вчиталсяв стандартные ф-и они делают тоже самое почти. Спасибо огромное тем кто откликнулся. В железе всеравно потери идут и ничего не работает а в протесе вроде работает всем спасибо за мысли будем дальше работать С вами не прощаюсь спишемся 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.