Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
link_mcu_hw.h
Go to the documentation of this file.
1 /* $Id: link_mcu_hw.h 2064 2007-11-23 12:35:50Z hecto $
2  *
3  * Copyright (C) 2003-2005 Pascal Brisset, Antoine Drouin
4  *
5  * This file is part of paparazzi.
6  *
7  * paparazzi is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  *
12  * paparazzi is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with paparazzi; see the file COPYING. If not, write to
19  * the Free Software Foundation, 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  *
22  */
23 
28 #ifndef LINK_MCU_HW_H
29 #define LINK_MCU_HW_H
30 
31 #define CRC_INIT 0x0
32 #define CrcLow(x) ((x)&0xff)
33 #define CrcHigh(x) ((x)>>8)
34 
35 static inline uint16_t CrcUpdate(uint16_t crc, uint8_t data) {
36  uint8_t a = ((uint8_t)CrcHigh(crc)) + data;
37  uint8_t b = ((uint8_t)CrcLow(crc)) + a;
38  crc = b | a << 8;
39  return crc;
40 }
41 
42 #endif /* LINK_MCU_HW_H */
unsigned short uint16_t
Definition: types.h:16
unsigned char uint8_t
Definition: types.h:14