Найден 21 результат

m.zdorenko
Чт май 14, 2015 14:39:01
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

Дело в том что, как то мучал Attiny2313A заведенную от внутреннего генератора на 8МГц питал ее напряжением 5 вольт.
Когда игрался с uart 9600 два стоп бита, начал замечать, что бывали ситуации когда вместо переданного 0x00 контроллер принимает 0x80.
Ну я правда тогда еще игрался с питанием ...
m.zdorenko
Чт май 14, 2015 13:59:36
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

Я имел ввиду разницу между просто буфером и кольцевым буфером, то есть оба массива скажем на 100 байт. И туда и туда можно запихивать данные и с ними работать по прерыванию. Оба буфера можно переполнить, в оба можно записывать пакетики но в кольцевом очередь данных поддерживать намного проще, ведь у ...
m.zdorenko
Чт май 14, 2015 12:05:32
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6


Если вы отправляете в ваш uart данные с разных подпрограмм. Можно конечно синхронно их выпихивать, но это костыль. А так, если одни данные еще не передались, то новые будут добавлены в конец буфера и не будут потеряны. А uart по прерываниям организовать.

Все равно не понял. А можно как полному ...
m.zdorenko
Чт май 14, 2015 09:38:31
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

9600 бит в секунду, т.е. 9600/8=1200 байт в секунду. Ваше прерывание будет вызываться с частотой 1.2кГц. В промежутках между прерываниями (когда вы не в прерывании от uart) работает основная программа и другие прерывания.
:facepalm: согласен. Что т я взял слонов и умножил на носорогов. Иногда ...
m.zdorenko
Чт май 14, 2015 00:09:38
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

Гм, это какой по счету разработанный алгоритм будет?
А то куча народу уже ...цать лет придумывает разные протоколы, но так пока и не придумали ИДЕАЛЬНЫЙ ПРОТОКОЛ. Чуть-чуть поскромнее надо бы.
Никто не говорит об идеальном. Так свой, для себя. Что б разобраться. =)
Что т я совсем туплю. глупый ...
m.zdorenko
Ср май 13, 2015 13:24:02
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

рассмотрите ситуацию чуть шире, чем вы только что сделали: вы приняли "старт" в середине пакета, следующий байт, предположим, равен 200 - это как бы длина пакета... ваша программа будет тупо ждать 200 байт, а их, может и не будет никогда... а может и будет, но 25 следующих пакетов вы пропустите ...
m.zdorenko
Ср май 13, 2015 10:54:19
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6


а если в середине пакета будет символ '<' и по воле случая вы начнете прием не с начала пакета, а с середины? т.е. впоймаете этот символ и воспримите его как маркер начала пакета?
В этом случае пакет не пройдет остальные проверки и будет все равно откинут как ошибочный.
Давайте посмотрим на пакет ...
m.zdorenko
Вт май 12, 2015 22:04:09
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

Да, можно еще добавить проверку минимальной длины. Так же можно еще добавить счетчик пакетов обмена. Синхронить его при начале обмена. И будем знать что потерялось.
m.zdorenko
Вт май 12, 2015 21:33:08
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

На текущий момент склоняюсь к вариации:
Пакет состоит {<}{c}{ud}{crc}{>}
< - байт символ, старта пакета
с - кол-во байт данных в пакете
ud - данные пакета
crc - контрольная сумма пакета
> - байт символ окончания пакета данных

Так можно будет контролировать целостность и корректность пакета.
1 ...
m.zdorenko
Пн май 11, 2015 23:06:28
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

Не редактирую, предыдущее так как а вдруг уже прочитано =)

Я сейчас понимаю Вы имели ввиду что так же необходимо проверять регистр UCSRA?
биты:
• Bit 4 – FE: Frame Error
• Bit 3 – DOR: Data OverRun
• Bit 2 – UPE: USART Parity Error
m.zdorenko
Пн май 11, 2015 22:45:58
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6


А зачем заполнять нулями буфер приема? Он же всё равно заполнится принятыми данными.

Привычка :) Очищать глобальные переменные после использования.

Всё равно - протокол помехо неустойчив. Что будет, если потеряем байт ">"? Опять же - теряем этот и следующий кадр.
Ну и ситуация, когда "биты ...
m.zdorenko
Пн май 11, 2015 19:54:25
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

И контроль переполнения буфера с дыркой: в кадре если потеряешь символ ">", то следующий кадр гарантировано теряешь.
Спасибо. Да я это знаю, этот кусок кода я урезал для проверки. В оригинальном у меня:

...
USART_RX_startReceiveData = 0; /*Прием пакета окончен*/
USART_RX_buffer_count = 0 ...
m.zdorenko
Пн май 11, 2015 17:15:16
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6

:facepalm: :facepalm: :facepalm: :facepalm: нет слов...
Да, буфер "обмана" :)) , сколько раз просматривал код и не заметил.

:shock: Но тогда каким чудом оно отрабатывает в первом случае?
И ведь правильно выводит любую комбинацию из любых 6 символов обратно, главное что б на первом месте была "1"
m.zdorenko
Пн май 11, 2015 13:27:58
Форум: AVR
Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Ответы: 29
Просмотры: 7943

Проблемы прерывания USART_RX_vect в Atmel Studio 6

Доброго времени суток.
Помогите понять в чем проблема, гугл не помог, может не там копал. Ситуация следующая:
Есть код.
Описание кода в краце:
Микроконтроллер настроен и работает на частоте 8МГц. Инициализируем 10 переменных ch_1_1 ... ch_2_5 , инициализируем переменную буфера передачи данных ...
m.zdorenko
Сб май 09, 2015 16:25:11
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

Про полевики вопрос остается актуален :(
UART монитор себе нашел. Вот сижу и думаю как передавать отправлять данные по нему.
Есть 2 варианта:
1) передавать из МК данные по маске, скажем uint8_t buffer[6] = {'R',255,'G',120,'B',58}; То есть ШИМ для 1 канала установлен 255 для второго 120 и бля ...
m.zdorenko
Ср май 06, 2015 20:27:51
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

Поставил Внизу в L-Fuse поставьте галку на крайнем левом бите. Помогло. Спасибо огромное всем за помощь. :))
В Khazamе с визуальным отображением фьюзов не все ок =( Да и тинька 2313 там только одна.

Теперь возникло еще пару вопросиков :)))
Текущая схема будет управлять метром RGB светодиодной ...
m.zdorenko
Ср май 06, 2015 00:01:52
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

Увас помоему включен внутренний делитель на 8 , тоесть частота будет 1 Мгц. Посмотрите внимательно фьюзы.

Проверте бит Divide clock by 8 internally; [CKDIV8=0]

Стоит вот так, поменять не могу в выпадающем списке, кроме установленного значения ничего нет.
http://img.radiokot.ru/files/106191 ...
m.zdorenko
Вт май 05, 2015 22:51:08
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

"Будьте добры, помедленнее! Я записываю..." ©
Не совсем понял. На сколько я знаю, что б было заметно мигание то питание на ножке светодиода должно отсутствовать около 25мс. однако частота 122Гц это единица за 8мс.
При этом если прерывание выполняется менее 256 тиков, то все должно быть норм.
К ...
m.zdorenko
Вс май 03, 2015 21:29:51
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

Reset в воздухе? Подключите его к питанию.
Оставте один светодиод, а лучше ни одного и поглядите осциллографом что происходит.

reset повесил на питание через резистор 4к7 - не помогло.
Вытащил все светодиоды, изменил программу на дерганье только одной ноги - не помогло.
Осциллографа, к ...
m.zdorenko
Вс май 03, 2015 16:50:04
Форум: AVR
Тема: Первый проект Attiny2313 необходима помощь.
Ответы: 16
Просмотры: 3129

Re: Первый проект Attiny2313 необходима помощь.

Z_h_e писал(а):С питанием то все нормально?
Питание от программатора, а так же менял на питание от импульного блока на 12v 1.5A с понижением напряжения до 5v (LM7805)

Перейти к расширенному поиску