ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
783236 Топик полностью
Звероящер (28.09.2017 09:22, просмотров: 292) ответил symbions на На жаль тут работают - а то бы было о бы решение моего вопроса
А зачем на единицу-то проверять? Результат IFa булевый же. Вот как-то...  #pragma type_attribute=__interrupt #pragma vector=USART_RX_vect void CUsart::usart_Rx_interrupt() { u8 status; u8 data; u8 sreg = SREG; status=UCSR0A; data=UDR0; usart_RxHead=(usart_RxHead+1)&usart_Rx_buffer_mask;//store new index if(status & ( (1<<FE0)|(1<<DOR0)|(1<<UPE0) ) ) { usart_RxBuf[usart_RxHead]=0xff;//ошибка return; } if(usart_RxHead==usart_RxTail)//если переполнение буфера { usart_RxBuf[usart_RxHead]=0xff;//ошибка usart_RxBuf[++usart_RxHead]=0xff;//ошибка return; } usart_RxBuf[usart_RxHead]=data; SREG = sreg; }