diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 2 | ||||
-rw-r--r-- | src/ao.h | 2 | ||||
-rw-r--r-- | src/ao_monitor.c | 3 | ||||
-rw-r--r-- | src/ao_pins.h | 2 | ||||
-rw-r--r-- | src/ao_radio.c | 2 | ||||
-rw-r--r-- | src/ao_task.c | 11 | ||||
-rw-r--r-- | src/telemetrum-v1.0/.gitignore (renamed from src/telemetrum-v0.2/.gitignore) | 0 | ||||
-rw-r--r-- | src/telemetrum-v1.0/Makefile (renamed from src/telemetrum-v0.2/Makefile) | 0 | ||||
-rw-r--r-- | src/telemetrum-v1.0/Makefile.defs (renamed from src/telemetrum-v0.2/Makefile.defs) | 6 |
9 files changed, 19 insertions, 9 deletions
diff --git a/src/Makefile b/src/Makefile index e2699ee6..24f562e1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,7 +4,7 @@ # CC=sdcc -SUBDIRS=telemetrum-v0.2 teledongle-v0.2 telemetrum-v0.1-sky telemetrum-v0.1-sirf teledongle-v0.1 tidongle test +SUBDIRS=telemetrum-v1.0 teledongle-v0.2 telemetrum-v0.1-sky telemetrum-v0.1-sirf teledongle-v0.1 tidongle test all: all-recursive @@ -43,7 +43,7 @@ struct ao_task { __xdata void *wchan; /* current wait channel (NULL if running) */ uint16_t alarm; /* abort ao_sleep time */ uint8_t stack_count; /* amount of saved stack */ - uint8_t task_id; /* index in the task array */ + uint8_t task_id; /* unique id */ __code char *name; /* task name */ uint8_t stack[AO_STACK_SIZE]; /* saved stack */ }; diff --git a/src/ao_monitor.c b/src/ao_monitor.c index 628b6e67..f2f3fc2e 100644 --- a/src/ao_monitor.c +++ b/src/ao_monitor.c @@ -80,7 +80,8 @@ ao_set_monitor(uint8_t monitoring) { ao_monitoring = monitoring; ao_wakeup(&ao_monitoring); - ao_radio_abort(); + if (!ao_monitoring) + ao_radio_abort(); } static void diff --git a/src/ao_pins.h b/src/ao_pins.h index 771d9c7f..e9a265b0 100644 --- a/src/ao_pins.h +++ b/src/ao_pins.h @@ -18,7 +18,7 @@ #ifndef _AO_PINS_H_ #define _AO_PINS_H_ -#if defined(TELEMETRUM_V_0_2) +#if defined(TELEMETRUM_V_1_0) #define HAS_SERIAL_1 1 #define HAS_ADC 1 #define HAS_EEPROM 1 diff --git a/src/ao_radio.c b/src/ao_radio.c index bb19c6a9..0849349e 100644 --- a/src/ao_radio.c +++ b/src/ao_radio.c @@ -317,8 +317,8 @@ ao_radio_idle(void) { if (RF_MARCSTATE != RF_MARCSTATE_IDLE) { - RFST = RFST_SIDLE; do { + RFST = RFST_SIDLE; ao_yield(); } while (RF_MARCSTATE != RF_MARCSTATE_IDLE); } diff --git a/src/ao_task.c b/src/ao_task.c index 4a78766e..72c9d7d6 100644 --- a/src/ao_task.c +++ b/src/ao_task.c @@ -28,10 +28,19 @@ void ao_add_task(__xdata struct ao_task * task, void (*start)(void), __code char *name) __reentrant { uint8_t __xdata *stack; + uint8_t task_id; + uint8_t t; if (ao_num_tasks == AO_NUM_TASKS) ao_panic(AO_PANIC_NO_TASK); + for (task_id = 1; task_id != 0; task_id++) { + for (t = 0; t < ao_num_tasks; t++) + if (ao_tasks[t]->task_id == task_id) + break; + if (t == ao_num_tasks) + break; + } ao_tasks[ao_num_tasks++] = task; - task->task_id = ao_num_tasks; + task->task_id = task_id; task->name = name; /* * Construct a stack frame so that it will 'return' diff --git a/src/telemetrum-v0.2/.gitignore b/src/telemetrum-v1.0/.gitignore index 76228093..76228093 100644 --- a/src/telemetrum-v0.2/.gitignore +++ b/src/telemetrum-v1.0/.gitignore diff --git a/src/telemetrum-v0.2/Makefile b/src/telemetrum-v1.0/Makefile index d8867b19..d8867b19 100644 --- a/src/telemetrum-v0.2/Makefile +++ b/src/telemetrum-v1.0/Makefile diff --git a/src/telemetrum-v0.2/Makefile.defs b/src/telemetrum-v1.0/Makefile.defs index eb11e7dc..e3cc5eb2 100644 --- a/src/telemetrum-v0.2/Makefile.defs +++ b/src/telemetrum-v1.0/Makefile.defs @@ -1,4 +1,4 @@ -PROG = telemetrum-v0.2.ihx +PROG = telemetrum-v1.0.ihx SRC = \ $(TM_BASE_SRC) \ @@ -6,5 +6,5 @@ SRC = \ $(SKY_DRIVER_SRC) \ $(DBG_SRC) -PRODUCT=TeleMetrum-v0.2 -PRODUCT_DEF=-DTELEMETRUM_V_0_2 +PRODUCT=TeleMetrum-v1.0 +PRODUCT_DEF=-DTELEMETRUM_V_1_0 |