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