moved macros to implementation file, end-of-line normalization, code style

This commit is contained in:
Niclas Finne 2011-11-17 14:44:20 +01:00
parent 013571ed3f
commit 987b57b015
2 changed files with 384 additions and 385 deletions

View File

@ -26,11 +26,19 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
/*
$Id: v 0.1 2011/02/15 tchapelle Exp $
*/
#include "dev/sht15.h" #include "dev/sht15.h"
#define DATA_OUT() P3DIR |= BIT7
#define DATA_IN() P3DIR &= ~BIT7
#define DATA_SET() P3OUT |= BIT7; halMcuWaitUs(10)
#define DATA_CLR() P3OUT &= ~BIT7; halMcuWaitUs(10)
#define DATA_VAL() (P3IN & BIT7)
#define SCK_OUT() P5DIR |= BIT4
#define SCK_SET() P5OUT |= BIT4; halMcuWaitUs(10)
#define SCK_CLR() P5OUT &= ~BIT4; halMcuWaitUs(10)
/*********************************************************************************** /***********************************************************************************
* @fn halMcuWaitUs * @fn halMcuWaitUs
* *
@ -47,23 +55,24 @@
*/ */
/* #pragma optimize=none */ /* #pragma optimize=none */
void halMcuWaitUs(uint16_t usec) // 5 cycles for calling void
halMcuWaitUs(uint16_t usec) /* 5 cycles for calling */
{ {
// The least we can wait is 3 usec: /* The least we can wait is 3 usec: */
// ~1 usec for call, 1 for first compare and 1 for return /* ~1 usec for call, 1 for first compare and 1 for return */
while(usec > 3) // 2 cycles for compare while(usec > 3) /* 2 cycles for compare */
{ // 2 cycles for jump { /* 2 cycles for jump */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
nop(); // 1 cycles for nop nop(); /* 1 cycles for nop */
usec -= 2; // 1 cycles for optimized decrement usec -= 2; /* 1 cycles for optimized decrement */
} }
} // 4 cycles for returning } /* 4 cycles for returning */
/** /**
@ -85,15 +94,17 @@ void halMcuWaitUs(uint16_t usec) // 5 cycles for calling
* *
* @return none * @return none
*/ */
void sht15_send_start() void
sht15_send_start(void)
{ {
// Sequence is to set data line to 1 then clock line to 1 /* Sequence is to set data line to 1 then clock line to 1
// then set data line to 0, clock line to 0 then set data line to 0, clock line to 0
// then set clock line to 1 and data line to 1 then set clock line to 1 and data line to 1
// ___________ ________ ___________ ________
// data line : _____/ \___________/ data line : _____/ \___________/
// ___________ ____________ ___________ ____________
// clock line : _________/ \___/ clock line : _________/ \___/
*/
DATA_OUT(); DATA_OUT();
DATA_SET(); DATA_SET();
@ -115,47 +126,43 @@ void sht15_send_start()
* *
* @return uint16_t * @return uint16_t
*/ */
uint16_t sht15_read16() uint16_t
sht15_read16(void)
{ {
uint16_t i; uint16_t i;
DATA_IN(); DATA_IN();
SCK_CLR(); SCK_CLR();
uint16_t val = 0; uint16_t val = 0;
for(i = 0; i < 18; i++) for(i = 0; i < 18; i++) {
{ if((i != 8) && (i != 17)) {
if((i != 8) && (i != 17)) SCK_SET();
{ if(DATA_VAL()) {
SCK_SET(); val |= 1;
if(DATA_VAL()) }
val |= 1;
val <<= 1; val <<= 1;
SCK_CLR(); SCK_CLR();
} } else if(i == 8) { /* Wait for first ACK from SHT15 */
else if(i == 8) // Wait for first ACK from SHT15 DATA_OUT();
{
DATA_OUT();
DATA_CLR(); DATA_CLR();
SCK_SET(); SCK_SET();
SCK_CLR(); SCK_CLR();
DATA_IN(); DATA_IN();
} } else if(i == 17) { /* Wait for second ACK from SHT15 */
else if(i == 17) // Wait for second ACK from SHT15 DATA_OUT();
{
DATA_OUT();
DATA_SET(); DATA_SET();
SCK_SET(); SCK_SET();
SCK_CLR(); SCK_CLR();
} }
} }
return val; return val;
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_write8 * @fn sht15_write8
@ -168,38 +175,35 @@ uint16_t val = 0;
* *
* @return none * @return none
*/ */
void sht15_write8(uint8_t val) void
sht15_write8(uint8_t val)
{ {
uint16_t i; uint16_t i;
DATA_OUT(); DATA_OUT();
for(i = 0; i < 8; i++) for(i = 0; i < 8; i++) {
{ halMcuWaitUs(4);
halMcuWaitUs(4); SCK_CLR();
SCK_CLR();
if(val & 0x80) if(val & 0x80) {
{ DATA_SET();
DATA_SET(); } else {
} DATA_CLR();
else }
{ val <<= 1;
DATA_CLR();
}
val <<= 1;
SCK_SET(); SCK_SET();
} }
DATA_IN(); DATA_IN();
SCK_CLR(); SCK_CLR();
while(DATA_VAL()); while(DATA_VAL());
SCK_SET(); SCK_SET();
SCK_CLR(); SCK_CLR();
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_wait_measure * @fn sht15_wait_measure
@ -212,9 +216,10 @@ void sht15_write8(uint8_t val)
* *
* @return none * @return none
*/ */
void sht15_wait_measure() void
sht15_wait_measure(void)
{ {
while(DATA_VAL()); while(DATA_VAL());
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_init * @fn sht15_init
@ -227,16 +232,17 @@ void sht15_wait_measure()
* *
* @return none * @return none
*/ */
void sht15_init() void
sht15_init(void)
{ {
// DATA and SCK lines are I/O /* DATA and SCK lines are I/O */
P3SEL &= ~BIT7; P3SEL &= ~BIT7;
P5SEL &= ~BIT4; P5SEL &= ~BIT4;
// Set SCK and DATA as output /* Set SCK and DATA as output */
DATA_OUT(); DATA_OUT();
SCK_OUT(); SCK_OUT();
DATA_SET(); DATA_SET();
SCK_SET(); SCK_SET();
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_measure_temp * @fn sht15_measure_temp
@ -249,10 +255,11 @@ void sht15_init()
* *
* @return none * @return none
*/ */
void sht15_measure_temp() void
sht15_measure_temp(void)
{ {
sht15_send_start(); sht15_send_start();
sht15_write8(3); sht15_write8(3);
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_measure_hum * @fn sht15_measure_hum
@ -267,8 +274,8 @@ void sht15_measure_temp()
*/ */
void sht15_measure_hum() void sht15_measure_hum()
{ {
sht15_send_start(); sht15_send_start();
sht15_write8(5); sht15_write8(5);
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_read_status * @fn sht15_read_status
@ -281,10 +288,11 @@ void sht15_measure_hum()
* *
* @return none * @return none
*/ */
void sht15_read_status() void
sht15_read_status()
{ {
sht15_send_start(); sht15_send_start();
sht15_write8(7); sht15_write8(7);
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_write_status * @fn sht15_write_status
@ -297,10 +305,11 @@ void sht15_read_status()
* *
* @return none * @return none
*/ */
void sht15_write_status() void
sht15_write_status(void)
{ {
sht15_send_start(); sht15_send_start();
sht15_write8(6); sht15_write8(6);
} }
/*********************************************************************************** /***********************************************************************************
* @fn sht15_soft_reset * @fn sht15_soft_reset
@ -313,8 +322,9 @@ void sht15_write_status()
* *
* @return none * @return none
*/ */
void sht15_soft_reset() void
sht15_soft_reset(void)
{ {
sht15_send_start(); sht15_send_start();
sht15_write8(30); sht15_write8(30);
} }

View File

@ -40,17 +40,6 @@
*/ */
#include "contiki.h" #include "contiki.h"
#define DATA_OUT() P3DIR |= BIT7
#define DATA_IN() P3DIR &= ~BIT7
#define DATA_SET() P3OUT |= BIT7; halMcuWaitUs(10)
#define DATA_CLR() P3OUT &= ~BIT7; halMcuWaitUs(10)
#define DATA_VAL() (P3IN & BIT7)
#define SCK_OUT() P5DIR |= BIT4
#define SCK_SET() P5OUT |= BIT4; halMcuWaitUs(10)
#define SCK_CLR() P5OUT &= ~BIT4; halMcuWaitUs(10)
/*********************************************************************************** /***********************************************************************************
* SHT15 functions * SHT15 functions
*/ */