From c6f7452ab86675465959b5f8784e3140438a56ba Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Tue, 22 Jul 2014 16:45:10 +0200 Subject: Use “volatile” on struct members MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not all struct members are written in an ISR. --- i2c.c | 2 +- i2c.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/i2c.c b/i2c.c index d7e5058..7fe4fd2 100644 --- a/i2c.c +++ b/i2c.c @@ -6,7 +6,7 @@ #include "i2c.h" #include "common.h" -volatile twReq twr; +twReq twr; static void twStartRaw () { /* disable stop, enable interrupt, reset twint, enable start, enable i2c */ diff --git a/i2c.h b/i2c.h index ec7fd87..1090ee2 100644 --- a/i2c.h +++ b/i2c.h @@ -19,19 +19,19 @@ typedef struct { twMode mode; uint8_t address; uint8_t subaddress; - uint8_t step; + volatile uint8_t step; /* pointer to read/write data */ - uint8_t *data; + volatile uint8_t *data; /* number of bytes to be read/written */ uint8_t count; /* current byte */ - uint8_t i; - twStatus status; + volatile uint8_t i; + volatile twStatus status; /* i2c bus status at the time if an error occured */ - uint8_t error; + volatile uint8_t error; } twReq; -extern volatile twReq twr; +extern twReq twr; #include -- cgit v1.2.3