ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
308613 Топик полностью
бомж (18.02.2012 14:15, просмотров: 111) ответил AU08 на Какой разумный размер буфера нужен, если "железка" отправляет данные на 9600 раз в секунду, а приём в контроллере mega128 тоже раз в секунду? Без буфера каждые полчаса возникает ситуация, когда то приходит 2 пакета за секунду, то ни одного.
В меге есть хардварный буфер.  
  • Если длина пакета будет равна(кратна) этому буферу, то IMHO вышеуказанной проблемы не будет.
  • Приём надо осуществлять в USART Receiver interrupt.
  • Попробуй очищать буфер после приёма каждого пакета:
  • void flush_rx_buffer(void){
    	#asm
    		Flush: SBIS 0xB,7
    			ret
    			in r16, UDR
    			rjmp Flush
    	#endasm
    }
    
    memento mori