Remove scheduler code.
authorMalte S. Stretz <mss@apache.org>
Fri, 20 Feb 2009 15:21:16 +0000 (15:21 +0000)
committerMalte S. Stretz <mss@apache.org>
Fri, 20 Feb 2009 15:21:16 +0000 (15:21 +0000)
src/buffer.c
src/dmx.c
src/main.c
src/sched.c [deleted file]
src/sched.h [deleted file]
src/tlc.c

index 1c77386..2763fac 100644 (file)
@@ -35,13 +35,10 @@ char gg_buffer_dc[3] = DC_RGB(
 ///////////////////////////////
 
 #include "mcu.h"
-#include "sched.h"
 #include "tlc.h"
 
 #include <string.h>
 
-sched_res_t buffer_test_next(void);
-
 volatile uint32_t g_delay;
 volatile uint8_t g_rgb = 0;
 void reset_counter(void)
@@ -67,13 +64,6 @@ void buffer_init(void)
 #if 0
 void buffer_next(void)
 {
-  //sched_put(&buffer_test_next);
-  //tlc_set_data_done();
-  buffer_test_next();
-}
-
-sched_res_t buffer_test_next(void)
-{
   char * foo = gg_buffer_gs + 15 * 3;
 
   //if (g_delay++ < 100000) return 0;
@@ -84,7 +74,6 @@ sched_res_t buffer_test_next(void)
   //g_rgb--;
 
   tlc_set_data_done();
-  return SCHED_OK;
 }
 
 void buffer_do(void)
index a81b5ff..1676311 100644 (file)
--- a/src/dmx.c
+++ b/src/dmx.c
@@ -2,8 +2,6 @@
 
 #include "mcu.h"
 
-#include "sched.h"
-
 #include "buffer.h"
 
 
@@ -61,15 +59,12 @@ void dmx_init(void)
   // 2 stop bits (USBS = 1),
   // no parity   (UPM  = 00).
   UBRRL = F_CPU / (16 * 250e3) - 1;
-  //UBRRL = 6;
   UBRRH = (0 << URSEL) | 0;
   UCSRC = (1 << URSEL)
         | bits_value(UCSZ1) | bits_value(UCSZ0)
         | bits_value(USBS);
   // Enable USART RXD interrupt (and clear UCSZ2 and *XEN).
   UCSRB = bits_value(RXCIE);
-  //UCSRA = bits_value(U2X);
-  bits_on(UCSRB, TXEN);
 
   // Enable timer interrupt (p72).
   bits_on(TIMSK, TOIE0);
index 4ab476f..2d1b38f 100644 (file)
@@ -2,7 +2,6 @@
 
 #include "mcu.h"
 
-#include "sched.h"
 #include "dmx.h"
 #include "tlc.h"
 #include "sd.h"
@@ -33,14 +32,11 @@ mcu_isr(TIMER2_COMP);
 
 //////////////////////////////////////////
 
-int main(void)
+void main_init(void)
 {
   cli();
   mcu_init();
 
-  // Initialize scheduler.
-  sched_init();
-
   // Initialize buffer.
   buffer_init();
 
@@ -50,18 +46,24 @@ int main(void)
   tlc_init();
 
   sei();
-  // Start DMX
-  //dmx_start();
-  // not done yet, use dummy data
-  //buffer_next();
+}
 
-  // Start scheduler.
-  //sched_loop();
+void main_start(void)
+{
+}
 
+void main_loop(void)
+{
   while (1) {
-    //buffer_next();
     tlc_set_data_done();
     tlc_wait_for_data();
   }
+}
+
+int main(void)
+{
+  main_init();
+  main_start();
+  main_loop();
   return 0;
 }
diff --git a/src/sched.c b/src/sched.c
deleted file mode 100644 (file)
index 0d6378f..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#include "sched.h"
-
-#include "mcu.h"
-
-#include <string.h>
-
-#include <avr/interrupt.h>
-#include <avr/sleep.h>
-
-/////////////////////////////////////////
-
-#define SCHED_QUEUE_LENGTH UINT8_C(10)
-
-void *  g_sched_ring[SCHED_QUEUE_LENGTH];
-uint8_t g_sched_head;
-uint8_t g_sched_tail;
-
-/////////////////////////////////////////
-
-void sched_init()
-{
-  set_sleep_mode(SLEEP_MODE_IDLE);
-  
-  memset(g_sched_ring, (int)NULL, sizeof(g_sched_ring));
-  g_sched_head = 0;
-  g_sched_tail = 0;
-}
-
-/////////////////////////////////////////
-
-void sched_put(sched_func_t func)
-{
-  if (func == NULL) return;
-  g_sched_ring[g_sched_tail] = func;
-  g_sched_tail = (g_sched_tail + 1) % SCHED_QUEUE_LENGTH;
-}
-
-uint8_t sched_get(sched_func_t * func)
-{
-  *func = g_sched_ring[g_sched_head];
-  if (*func == NULL) return 0;
-
-  g_sched_ring[g_sched_head] = NULL;
-  g_sched_head = (g_sched_head + 1) % SCHED_QUEUE_LENGTH;
-  return 1;
-}
-
-/////////////////////////////////////////
-//TODO: enqueue in front
-void sched_loop()
-{
-  sched_func_t first;
-  uint8_t      running;
-  sched_func_t func;
-  sched_res_t  resched;
-  
-  while (1) {
-    // Be atomic.
-    cli();
-
-    // Peek at scheduler queue for first call.
-    running = sched_get(&func);
-    first = func;
-    // Need a valid pointer.
-    while (running) {
-      // Got something, enable interrupts, disable sleep mode.
-      sei();
-      sleep_disable();
-
-      // Call the queued function.
-      resched = func();
-
-      // Be atomic again.
-      cli();
-
-      // If the call wasn't successful, reschedule.
-      if (resched != SCHED_OK)
-        sched_put(func);
-      
-      // Get next pointer, exit loop if done.
-      running  = sched_get(&func);
-      if (func == first) {
-        sched_put(func);
-        running = 0;
-      }
-    }
-
-    // Wait for next interrupt.
-    sleep_enable();
-    sei();
-    //sleep_cpu();
-  }
-}
-
diff --git a/src/sched.h b/src/sched.h
deleted file mode 100644 (file)
index 1186002..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#include <inttypes.h>
-
-typedef uint8_t sched_res_t;
-#define SCHED_OK 0
-#define SCHED_RE 1
-typedef sched_res_t (*sched_func_t)(void);
-
-void sched_init(void);
-
-void sched_loop(void);
-
-void sched_put(sched_func_t func);
index a26ca15..66940d1 100644 (file)
--- a/src/tlc.c
+++ b/src/tlc.c
@@ -5,13 +5,10 @@
 #include "mcu.h"
 #include "pins.h"
 
-#include "sched.h"
 #include "buffer.h"
 
 /////////////////////////////////////////
 
-sched_res_t wait_for_data(void);
-
 volatile uint8_t g_data_available;
 
 /////////////////////////////////////////
@@ -28,7 +25,6 @@ void tlc_wait_for_data()
 }
 void set_shifting_off(void)
 {
-  //sched_put(&wait_for_data);
   g_data_shifting = 0;
 }
 
@@ -282,19 +278,3 @@ void send_data(void)
 
 
 /////////////////////////////////////////
-
-sched_res_t wait_for_data(void)
-{
-  if (!g_data_available) return SCHED_RE;
-
-  send_data();
-  start_gscycle();
-  // Continue in background...
-
-  // TODO: next data
-  //buffer_next();
-
-  return SCHED_OK;
-}
-
-/////////////////////////////////////////