Guest User

Untitled

a guest
Jun 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. void USART1_IRQHandler(void)        //przerwanie UART (tylko dla bufora odbiorczego)
  2. {
  3.     extern char snbuf[10];
  4.     extern int odebrano_polecenie;
  5.     unsigned char d;
  6.  
  7.     if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)  
  8.     //sprawdzamy czy przerwanie nastąpiło z powodu zapełnienia buforu odczytu
  9.     {
  10.         d = USART_ReceiveData(USART1);      //zapis odebranego bajtu
  11.         if(odebrano_polecenie == 1)     //sprawdzamy czy odebrane ID zostało obsłuzone przez  program główny
  12.                 return;         //odebrane ID nie zostało jeszcze obsłużone przez program głowny, konczymy dzialanie przerwania
  13.         if(l>6)                 //pierwsze 6 ramek nas nie intereusje, ID znajduje się w następnych
  14.             snbuf[l-7] = d;
  15.  
  16.         if(++l >16) //przeslano cala ramke danych z breloczka
  17.             {
  18.                 l = 0;
  19.                 odebrano_polecenie = 1;     //sygnalizujemy programu głównemu, że odebrano ID breloczka
  20.             }
  21.     }
  22. }
Add Comment
Please, Sign In to add comment