diff --git a/atomq.c b/atomq.c index eb5e67e..517c93b 100755 --- a/atomq.c +++ b/atomq.c @@ -40,7 +40,7 @@ bool atomq_enqueue_nb(volatile struct atomq *queue, void *src) { return false; } - memcpy((void *)&(queue->storage[queue->headOffset]), src, queue->slotSize); + memcpy((void *)&(queue->storage[queue->headOffset * queue->slotSize]), src, queue->slotSize); queue->headOffset++; queue->headOffset %= queue->numSlots; @@ -82,7 +82,7 @@ bool atomq_dequeue_nb(volatile struct atomq *queue, void *dest) { return false; } - memcpy(dest, (void *)&(queue->storage[queue->tailOffset]), queue->slotSize); + memcpy(dest, (void *)&(queue->storage[queue->tailOffset * queue->slotSize]), queue->slotSize); queue->tailOffset++; queue->tailOffset %= queue->numSlots; diff --git a/fault.c b/fault.c index b287d76..5f6aa9a 100755 --- a/fault.c +++ b/fault.c @@ -30,7 +30,7 @@ void fault_fatal(uint8_t faultNum) { _delay_ms(50); } - _delay_ms(500); + _delay_ms(1000); for(i = 0; i < faultNum; i++) { led_on(); diff --git a/faultlist.h b/faultlist.h index dec70c4..567198a 100755 --- a/faultlist.h +++ b/faultlist.h @@ -10,7 +10,7 @@ #define _FAULT_NONE 1 #define FAULT_TEST 3 - +#define FAULT_MAINLOOP_DID_EXIT 4 #define FAULT_IOPORT_INVALID_PORT_SPECIFIED 5 #define FAULT_ATOMQ_ALLOC_FAILED 6 #define FAULT_UART_BUFFER_NB_WOULD_BLOCK 7 diff --git a/main.c b/main.c index 2f613fc..b2eef6a 100755 --- a/main.c +++ b/main.c @@ -23,15 +23,12 @@ void main_init(void) { uart_init(); } -int main(void) { - main_init(); - +void main_run(void) { sei(); +} - printf("What's up, Doc? "); - - while(1) { - volatile static int i = 0; - i++; - } +int main(void) { + main_init(); + main_run(); + fault_fatal(FAULT_MAINLOOP_DID_EXIT); }