- 
	- Не знаю как сейчас, а в 4-й студии флажки вполне ставятся "вручную". По крайней мере - RXC. Если в новых не так, то можно stimuli-файл подсунуть. - Точка опоры(11.09.2013 13:00)
- ЗАЧЕМ?! - Гyдвин(11.09.2013 12:23)
			- У AVR существует два прерывания для передачика: TXC и UDRE. Первое вылетает при окончании предыдущей передачи, а второе, когда передачик пуст. TXC очень удобно подачи следующего байта из очереди/буфера. Но вот очередь рассосалась и передавать  Ксения(615 знак., 11.09.2013 13:24)
					- Мне кажется, вы не совсем верно понимаете принцип организации работы передатчика UART. Передатчик работает  Bill(543 знак., 12.09.2013 13:54)
							- Прерывание по UDRE не знает, лежит ли в буфере что-то ещё, требующее передачи, или там пусто. А если пусто, то это прерывание само не успокоится, а будет долбить непрерывно, пока предатчик пуст. Стало быть, это прерывание придется отключать  Ксения(509 знак., 12.09.2013 14:35)
									- Если передача идет одиночными байтами, то тогда да. А если передаются пакеты, то,  Bill(210 знак., 12.09.2013 15:23)
											- А при передаче первового байта (если прежде буфер был пуст) включаете UDRE? Тогда, у вас вынимание байта из буфера и запись его в приемник дублируется в обоих обработчиках (UDRE и TXC)? Или я неверно поняла принцип? - Ксения(12.09.2013 16:04)
													- Ксения, если Вы посылаете одиночные байты с периодом = или больше скорости передачи , то в буфере передатчика байт не задержится никогда - прямяком в сдвиговый регистр. Т.е флаг UDRE стоит практически всегда. Лучше юзать -  конец передачи Если Вы  ilyaul(296 знак., 12.09.2013 19:48)
															- А тогда зачем сделали TXC?  Ксения(271 знак., 12.09.2013 20:40)
																	- Так , флажок TXC появляется , если  байт отослан И в буфере передатчика тоже пусто т.е флаг UDRE установлен.Если же флаг UDRE сброшен (в буфере передатчика завалялся байтик) ,то TXC не установится , даже если отослан байт.Где-то у меня была схемка  ilyaul(246 знак., 12.09.2013 21:11 - 21:15)
																			- Если UDRE подвис (не успели в него записать данные за время передачи байта?), то нужно кроме записи в UDR записывать 1 в TXC во время передачи каждого байта. - Apтём(12.09.2013 21:15)
 
- Txc позволяет узнать что байт передан. Это нужно для 485-го. Или если нужно послать в uart и уйти в глубокий сон по окончании передачи. Apтём(81 знак., 12.09.2013 20:53)
 
- Так , флажок TXC появляется , если  байт отослан И в буфере передатчика тоже пусто т.е флаг UDRE установлен.Если же флаг UDRE сброшен (в буфере передатчика завалялся байтик) ,то TXC не установится , даже если отослан байт.Где-то у меня была схемка  ilyaul(246 знак., 12.09.2013 21:11 - 21:15)
																			
 
- А тогда зачем сделали TXC?  Ксения(271 знак., 12.09.2013 20:40)
																	
- В TXC ничего в UDR не пишется, там только направление RS485 переключается. В UDRE ещё нужно TXC сбросить, если вдруг он установился до конца пакета. - Apтём(12.09.2013 16:07)
															- У меня, слава Богу, не RS485, а простой UART/RS232. В таком случае, ваш вариант эквивалентен отказу от использования прерывания TXC в пользу UDRE. - Ксения(12.09.2013 16:18)
																	- Да, если RS485 не нужен, то с TXC делать ничего не надо. - Apтём(12.09.2013 16:22)
																			- Как вы полагаете. Если разрешить СРАЗУ ОБА прерывания (TXC и UDRE), а TXC пошлёт байт первым, то UDRE следом вызовется или его флаг надо стирать внутри TXC-обработчика, чтобы его подавить его вызов? - Ксения(12.09.2013 16:53)
																					- Если использовать два прерывания(RS485), то в TXC ничего посылать не надо, там только направление переключается. Для RS232 не нужно два прерывания использовать.  Apтём(198 знак., 12.09.2013 17:00)
																							- + в общем-то прерывание нужно использовать только на приём, чтобы вовремя забирать то, что туда прилетело. При передаче, как правило, это не нужно. Достаточно отслеживать то, что передача ещё не закончена, и затем пихать туда новый байт.  Adept(3469 знак., 12.09.2013 17:35 - 18:03)
																									- Что делать...бросать писать на ассемблере. Apтём(234 знак., 12.09.2013 17:42)
 
 
- + в общем-то прерывание нужно использовать только на приём, чтобы вовремя забирать то, что туда прилетело. При передаче, как правило, это не нужно. Достаточно отслеживать то, что передача ещё не закончена, и затем пихать туда новый байт.  Adept(3469 знак., 12.09.2013 17:35 - 18:03)
																									
 
- Если использовать два прерывания(RS485), то в TXC ничего посылать не надо, там только направление переключается. Для RS232 не нужно два прерывания использовать.  Apтём(198 знак., 12.09.2013 17:00)
																							
 
- Как вы полагаете. Если разрешить СРАЗУ ОБА прерывания (TXC и UDRE), а TXC пошлёт байт первым, то UDRE следом вызовется или его флаг надо стирать внутри TXC-обработчика, чтобы его подавить его вызов? - Ксения(12.09.2013 16:53)
																					
 
- Да, если RS485 не нужен, то с TXC делать ничего не надо. - Apтём(12.09.2013 16:22)
																			
 
- У меня, слава Богу, не RS485, а простой UART/RS232. В таком случае, ваш вариант эквивалентен отказу от использования прерывания TXC в пользу UDRE. - Ксения(12.09.2013 16:18)
																	
 
- Ксения, если Вы посылаете одиночные байты с периодом = или больше скорости передачи , то в буфере передатчика байт не задержится никогда - прямяком в сдвиговый регистр. Т.е флаг UDRE стоит практически всегда. Лучше юзать -  конец передачи Если Вы  ilyaul(296 знак., 12.09.2013 19:48)
															
 
- А при передаче первового байта (если прежде буфер был пуст) включаете UDRE? Тогда, у вас вынимание байта из буфера и запись его в приемник дублируется в обоих обработчиках (UDRE и TXC)? Или я неверно поняла принцип? - Ксения(12.09.2013 16:04)
													
- Я чего-то не понимаю, а в чем проблема включать-выключать прерывание UDRE? Чему это мешает? LightElf(421 знак., 12.09.2013 14:47)
 
- Если передача идет одиночными байтами, то тогда да. А если передаются пакеты, то,  Bill(210 знак., 12.09.2013 15:23)
											
 
- Прерывание по UDRE не знает, лежит ли в буфере что-то ещё, требующее передачи, или там пусто. А если пусто, то это прерывание само не успокоится, а будет долбить непрерывно, пока предатчик пуст. Стало быть, это прерывание придется отключать  Ксения(509 знак., 12.09.2013 14:35)
									
- Использую TXC. Первый байт записываю прямо в UDR, остальные - в буфер. - Лeoнид Ивaнoвич(12.09.2013 10:15)
- Тоже по UDRE работаю. На последнем байте переключаюсь на TXC, чтобы ADM485 переключить на прием. - Ale3000(12.09.2013 09:55)
- Всю жизнь использую именно UDRE. Добавляю байт в циклический буфер и разрешаю прерывание UDRE. LightElf(120 знак., 11.09.2013 17:30)
 
- Мне кажется, вы не совсем верно понимаете принцип организации работы передатчика UART. Передатчик работает  Bill(543 знак., 12.09.2013 13:54)
							
 
- У AVR существует два прерывания для передачика: TXC и UDRE. Первое вылетает при окончании предыдущей передачи, а второе, когда передачик пуст. TXC очень удобно подачи следующего байта из очереди/буфера. Но вот очередь рассосалась и передавать  Ксения(615 знак., 11.09.2013 13:24)