Дело в том что, как то мучал Attiny2313A заведенную от внутреннего генератора на 8МГц питал ее напряжением 5 вольт.
Когда игрался с uart 9600 два стоп бита, начал замечать, что бывали ситуации когда вместо переданного 0x00 контроллер принимает 0x80.
Ну я правда тогда еще игрался с питанием ...
Найден 21 результат
- Чт май 14, 2015 14:39:01
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
- Чт май 14, 2015 13:59:36
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Я имел ввиду разницу между просто буфером и кольцевым буфером, то есть оба массива скажем на 100 байт. И туда и туда можно запихивать данные и с ними работать по прерыванию. Оба буфера можно переполнить, в оба можно записывать пакетики но в кольцевом очередь данных поддерживать намного проще, ведь у ...
- Чт май 14, 2015 12:05:32
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Если вы отправляете в ваш uart данные с разных подпрограмм. Можно конечно синхронно их выпихивать, но это костыль. А так, если одни данные еще не передались, то новые будут добавлены в конец буфера и не будут потеряны. А uart по прерываниям организовать.
Все равно не понял. А можно как полному ...
- Чт май 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: согласен. Что т я взял слонов и умножил на носорогов. Иногда ...
:facepalm: согласен. Что т я взял слонов и умножил на носорогов. Иногда ...
- Чт май 14, 2015 00:09:38
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Гм, это какой по счету разработанный алгоритм будет?
А то куча народу уже ...цать лет придумывает разные протоколы, но так пока и не придумали ИДЕАЛЬНЫЙ ПРОТОКОЛ. Чуть-чуть поскромнее надо бы.
Никто не говорит об идеальном. Так свой, для себя. Что б разобраться. =)
Что т я совсем туплю. глупый ...
А то куча народу уже ...цать лет придумывает разные протоколы, но так пока и не придумали ИДЕАЛЬНЫЙ ПРОТОКОЛ. Чуть-чуть поскромнее надо бы.
Никто не говорит об идеальном. Так свой, для себя. Что б разобраться. =)
Что т я совсем туплю. глупый ...
- Ср май 13, 2015 13:24:02
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
рассмотрите ситуацию чуть шире, чем вы только что сделали: вы приняли "старт" в середине пакета, следующий байт, предположим, равен 200 - это как бы длина пакета... ваша программа будет тупо ждать 200 байт, а их, может и не будет никогда... а может и будет, но 25 следующих пакетов вы пропустите ...
- Ср май 13, 2015 10:54:19
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
а если в середине пакета будет символ '<' и по воле случая вы начнете прием не с начала пакета, а с середины? т.е. впоймаете этот символ и воспримите его как маркер начала пакета?
В этом случае пакет не пройдет остальные проверки и будет все равно откинут как ошибочный.
Давайте посмотрим на пакет ...
- Вт май 12, 2015 22:04:09
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
Да, можно еще добавить проверку минимальной длины. Так же можно еще добавить счетчик пакетов обмена. Синхронить его при начале обмена. И будем знать что потерялось.
- Вт май 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 ...
Пакет состоит {<}{c}{ud}{crc}{>}
< - байт символ, старта пакета
с - кол-во байт данных в пакете
ud - данные пакета
crc - контрольная сумма пакета
> - байт символ окончания пакета данных
Так можно будет контролировать целостность и корректность пакета.
1 ...
- Пн май 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
Я сейчас понимаю Вы имели ввиду что так же необходимо проверять регистр UCSRA?
биты:
• Bit 4 – FE: Frame Error
• Bit 3 – DOR: Data OverRun
• Bit 2 – UPE: USART Parity Error
- Пн май 11, 2015 22:45:58
- Форум: AVR
- Тема: Проблемы прерывания USART_RX_vect в Atmel Studio 6
- Ответы: 29
- Просмотры: 7943
Re: Проблемы прерывания USART_RX_vect в Atmel Studio 6
А зачем заполнять нулями буфер приема? Он же всё равно заполнится принятыми данными.
Привычка :) Очищать глобальные переменные после использования.
Всё равно - протокол помехо неустойчив. Что будет, если потеряем байт ">"? Опять же - теряем этот и следующий кадр.
Ну и ситуация, когда "биты ...
- Пн май 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 ...
Спасибо. Да я это знаю, этот кусок кода я урезал для проверки. В оригинальном у меня:
...
USART_RX_startReceiveData = 0; /*Прием пакета окончен*/
USART_RX_buffer_count = 0 ...
- Пн май 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"
Да, буфер "обмана" :)) , сколько раз просматривал код и не заметил.
:shock: Но тогда каким чудом оно отрабатывает в первом случае?
И ведь правильно выводит любую комбинацию из любых 6 символов обратно, главное что б на первом месте была "1"
- Пн май 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 , инициализируем переменную буфера передачи данных ...
Помогите понять в чем проблема, гугл не помог, может не там копал. Ситуация следующая:
Есть код.
Описание кода в краце:
Микроконтроллер настроен и работает на частоте 8МГц. Инициализируем 10 переменных ch_1_1 ... ch_2_5 , инициализируем переменную буфера передачи данных ...
- Сб май 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 и бля ...
UART монитор себе нашел. Вот сижу и думаю как передавать отправлять данные по нему.
Есть 2 варианта:
1) передавать из МК данные по маске, скажем uint8_t buffer[6] = {'R',255,'G',120,'B',58}; То есть ШИМ для 1 канала установлен 255 для второго 120 и бля ...
- Ср май 06, 2015 20:27:51
- Форум: AVR
- Тема: Первый проект Attiny2313 необходима помощь.
- Ответы: 16
- Просмотры: 3129
Re: Первый проект Attiny2313 необходима помощь.
Поставил Внизу в L-Fuse поставьте галку на крайнем левом бите. Помогло. Спасибо огромное всем за помощь. :))
В Khazamе с визуальным отображением фьюзов не все ок =( Да и тинька 2313 там только одна.
Теперь возникло еще пару вопросиков :)))
Текущая схема будет управлять метром RGB светодиодной ...
В Khazamе с визуальным отображением фьюзов не все ок =( Да и тинька 2313 там только одна.
Теперь возникло еще пару вопросиков :)))
Текущая схема будет управлять метром RGB светодиодной ...
- Ср май 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 ...
Проверте бит Divide clock by 8 internally; [CKDIV8=0]
Стоит вот так, поменять не могу в выпадающем списке, кроме установленного значения ничего нет.
http://img.radiokot.ru/files/106191 ...
- Вт май 05, 2015 22:51:08
- Форум: AVR
- Тема: Первый проект Attiny2313 необходима помощь.
- Ответы: 16
- Просмотры: 3129
Re: Первый проект Attiny2313 необходима помощь.
"Будьте добры, помедленнее! Я записываю..." ©
Не совсем понял. На сколько я знаю, что б было заметно мигание то питание на ножке светодиода должно отсутствовать около 25мс. однако частота 122Гц это единица за 8мс.
При этом если прерывание выполняется менее 256 тиков, то все должно быть норм.
К ...
Не совсем понял. На сколько я знаю, что б было заметно мигание то питание на ножке светодиода должно отсутствовать около 25мс. однако частота 122Гц это единица за 8мс.
При этом если прерывание выполняется менее 256 тиков, то все должно быть норм.
К ...
- Вс май 03, 2015 21:29:51
- Форум: AVR
- Тема: Первый проект Attiny2313 необходима помощь.
- Ответы: 16
- Просмотры: 3129
Re: Первый проект Attiny2313 необходима помощь.
Reset в воздухе? Подключите его к питанию.
Оставте один светодиод, а лучше ни одного и поглядите осциллографом что происходит.
reset повесил на питание через резистор 4к7 - не помогло.
Вытащил все светодиоды, изменил программу на дерганье только одной ноги - не помогло.
Осциллографа, к ...
Оставте один светодиод, а лучше ни одного и поглядите осциллографом что происходит.
reset повесил на питание через резистор 4к7 - не помогло.
Вытащил все светодиоды, изменил программу на дерганье только одной ноги - не помогло.
Осциллографа, к ...
- Вс май 03, 2015 16:50:04
- Форум: AVR
- Тема: Первый проект Attiny2313 необходима помощь.
- Ответы: 16
- Просмотры: 3129
Re: Первый проект Attiny2313 необходима помощь.
Питание от программатора, а так же менял на питание от импульного блока на 12v 1.5A с понижением напряжения до 5v (LM7805)Z_h_e писал(а):С питанием то все нормально?