Hanna
Sourcecode Batteriemanagementsystem
byteordering.c
gehe zur Dokumentation dieser Datei
1 
14 /*
15  * Copyright (c) 2006-2011 by Roland Riegel <feedback@roland-riegel.de>
16  *
17  * This file is free software; you can redistribute it and/or modify
18  * it under the terms of either the GNU General Public License version 2
19  * or the GNU Lesser General Public License version 2.1, both as
20  * published by the Free Software Foundation.
21  */
22 
23 #include "byteordering.h"
24 
39 #if DOXYGEN || SWAP_NEEDED
40 
48 uint16_t swap16(uint16_t i)
49 {
50  return SWAP16(i);
51 }
52 
60 uint32_t swap32(uint32_t i)
61 {
62  return SWAP32(i);
63 }
64 
65 #endif
66 
67 #if DOXYGEN || !__AVR__
68 
75 uint16_t read16(const uint8_t* p)
76 {
77  return (((uint16_t) p[1]) << 8) |
78  (((uint16_t) p[0]) << 0);
79 }
80 
87 uint32_t read32(const uint8_t* p)
88 {
89  return (((uint32_t) p[3]) << 24) |
90  (((uint32_t) p[2]) << 16) |
91  (((uint32_t) p[1]) << 8) |
92  (((uint32_t) p[0]) << 0);
93 }
94 
101 void write16(uint8_t* p, uint16_t i)
102 {
103  p[1] = (uint8_t) ((i & 0xff00) >> 8);
104  p[0] = (uint8_t) ((i & 0x00ff) >> 0);
105 }
106 
113 void write32(uint8_t* p, uint32_t i)
114 {
115  p[3] = (uint8_t) ((i & 0xff000000) >> 24);
116  p[2] = (uint8_t) ((i & 0x00ff0000) >> 16);
117  p[1] = (uint8_t) ((i & 0x0000ff00) >> 8);
118  p[0] = (uint8_t) ((i & 0x000000ff) >> 0);
119 }
120 
121 #endif
122 
SD-Card Reader Bibliothek von Roland Riegel.
void write16(uint8_t *p, uint16_t i)
Definition: byteordering.c:101
uint32_t read32(const uint8_t *p)
Definition: byteordering.c:87
void write32(uint8_t *p, uint32_t i)
Definition: byteordering.c:113
uint16_t read16(const uint8_t *p)
Definition: byteordering.c:75