Browse Source

cleared some Warnings

rtos
Olaf Rempel 12 years ago
parent
commit
5d47c871fa
3 changed files with 21 additions and 19 deletions
  1. +5
    -5
      Makefile
  2. +13
    -11
      src/at91_tc1.c
  3. +3
    -3
      src/stdio/printf.c

+ 5
- 5
Makefile View File

@@ -28,12 +28,12 @@ CFLAGS += -MD -MP -MF $(BUILD)/$(*D)/$(*F).d
CFLAGS += -Wall
#CFLAGS += -Wextra
#CFLAGS += -Wcast-align -Wimplicit -Wunused
#CFLAGS += -Wpointer-arith -Wswitch
#CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow
#CFLAGS += -Wbad-function-cast -Wsign-compare -Waggregate-return
CFLAGS += -Wpointer-arith -Wswitch
CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow
CFLAGS += -Wbad-function-cast -Wsign-compare -Waggregate-return
#CFLAGS += -Wcast-qual -Wnested-externs
#CFLAGS += -Wmissing-prototypes
#CFLAGS += -Wstrict-prototypes -Wmissing-declarations
#CFLAGS += -Wmissing-prototypes -Wmissing-declarations
CFLAGS += -Wstrict-prototypes

LDFLAGS = -nostartfiles -t ldscript.ld -Wl,-Map=$@.map,--cref
LDFLAGS += $(patsubst %,-L%,$(LIBDIRS))


+ 13
- 11
src/at91_tc1.c View File

@@ -50,19 +50,21 @@ struct channel_data {
};

static struct channel_data ch_data[MAX_CHANNELS];
static uint32_t index, count, valid, cal_in_progress;
static uint32_t count, valid, cal_in_progress;

static void ppm_isr(void)
{
static uint32_t i;

/* RC Compare -> no TIOA1 edge for 2.5ms */
uint32_t status = *AT91C_TC1_SR;

if (status & AT91C_TC_CPCS) {
/* average channel count */
count = ((count * 7) + (index << 8)) / 8;
count = ((count * 7) + (i << 8)) / 8;

/* at least 4 channels and a stable channel count */
if ((ROUND_DIV256(count) == index) && (index >= 4)) {
if ((ROUND_DIV256(count) == i) && (i >= 4)) {
if (valid < 10)
valid++;

@@ -71,7 +73,7 @@ static void ppm_isr(void)
}

/* reset index */
index = 0;
i = 0;
}

/* edge on TIOA1 */
@@ -81,19 +83,19 @@ static void ppm_isr(void)

/* valid range: 1 - 2ms */
if (width > PULSE_MIN && width < PULSE_MAX) {
if (index < ARRAY_SIZE(ch_data)) {
if (i < ARRAY_SIZE(ch_data)) {
/* calc both filters */
ch_data[index].width = ((ch_data[index].width * (PULSE_FILTER_FAST -1)) + width) / PULSE_FILTER_FAST;
ch_data[index].width_slow = ((ch_data[index].width_slow * (PULSE_FILTER_SLOW -1)) + width) / PULSE_FILTER_SLOW;
ch_data[i].width = ((ch_data[i].width * (PULSE_FILTER_FAST -1)) + width) / PULSE_FILTER_FAST;
ch_data[i].width_slow = ((ch_data[i].width_slow * (PULSE_FILTER_SLOW -1)) + width) / PULSE_FILTER_SLOW;

if (cal_in_progress) {
/* use slow filter values, calc center */
ch_data[index].min = MIN(ch_data[index].width_slow, ch_data[index].min);
ch_data[index].max = MAX(ch_data[index].width_slow, ch_data[index].max);
ch_data[index].mid = (ch_data[index].min + ch_data[index].max) / 2;
ch_data[i].min = MIN(ch_data[i].width_slow, ch_data[i].min);
ch_data[i].max = MAX(ch_data[i].width_slow, ch_data[i].max);
ch_data[i].mid = (ch_data[i].min + ch_data[i].max) / 2;
}
}
index++;
i++;
}
}
}


+ 3
- 3
src/stdio/printf.c View File

@@ -29,13 +29,13 @@ int inline putchar(int c)
struct snprintf_data {
char *bufstart;
size_t buflen;
int pos;
size_t pos;
};

int snprintf_helper(void *base, const char *buf, size_t len)
{
struct snprintf_data *data = (struct snprintf_data *)base;
int count = 0;
while (len-- && (data->pos < data->buflen))
data->bufstart[data->pos++] = *buf++;
@@ -50,7 +50,7 @@ int snprintf(char *buf, size_t len, const char *fmt, ...)
.buflen = len,
.pos = 0,
};
va_list ap;
va_start(ap, fmt);
int rc = _putf(snprintf_helper, (void *)&data, fmt, ap);


Loading…
Cancel
Save