OSDN Git Service

Added LED toggle operation to the clock.
authorShinichiro Nakamura <shinta.main.jp@gmail.com>
Sat, 26 May 2012 11:31:07 +0000 (20:31 +0900)
committerShinichiro Nakamura <shinta.main.jp@gmail.com>
Sat, 26 May 2012 11:31:07 +0000 (20:31 +0900)
firm/02/os/clock.c
firm/README.TXT

index 512aa27..c9e9be1 100644 (file)
@@ -2,6 +2,7 @@
 #include "kozos.h"
 #include "consdrv.h"
 #include "timerdrv.h"
+#include "leddrv.h"
 #include "lib.h"
 
 /* ¥¿¥¤¥Þ¤Î¥«¥¦¥ó¥È³«»Ï¤ò¥¿¥¤¥Þ¡¦¥É¥é¥¤¥Ð¤Ë°ÍÍꤹ¤ë */
@@ -27,14 +28,25 @@ static void send_write(char *str)
   kz_send(MSGBOX_ID_CONSOUTPUT, len + 2, p);
 }
 
-int clock_main(int argc, char *argv[])
+static void send_led_toggle(int target)
 {
-  send_start(3000);
+  char *p;
+  p = kz_kmalloc(2);
+  p[0] = LEDDRV_CMD_LED_TOGGLE;
+  p[1] = '0' + target;
+  kz_send(MSGBOX_ID_LEDDRIVE, 2, p);
+}
 
+int clock_main(int argc, char *argv[])
+{
   while (1) {
+    send_start(100);
+    kz_recv(MSGBOX_ID_TIMEXPIRE, NULL, NULL);
+    send_led_toggle(0);
+
+    send_start(100);
     kz_recv(MSGBOX_ID_TIMEXPIRE, NULL, NULL);
-    send_write("ready.\n");
-    send_start(3000);
+    send_led_toggle(1);
   }
 
   return 0;
index 4ceb2ce..5216ee3 100644 (file)
@@ -1,18 +1,26 @@
 ======================================================================
 01
 ======================================================================
-    「(H8移植編その2第3回)DRAM上で動かそう」から拝借したコード。
-    http://kozos.jp/kozos/h8_2_03.html
-    DRAM上でOSを動作させる事ができる。
-    KOZOS EXPBRD #00のアプリケーションは、このコードをベースに
-    拡張していく事にする。
+  「(H8移植編その2第3回)DRAM上で動かそう」から拝借したコード。
+  http://kozos.jp/kozos/h8_2_03.html
+  DRAM上でOSを動作させる事ができる。
+  KOZOS EXPBRD #00のアプリケーションは、このコードをベースに
+  拡張していく事にする。
 
 ======================================================================
 02
 ======================================================================
-    01にLED点灯制御を追加したバージョン。
-    ブートローダ上ではLEDコマンドを使うことができる。
-    OSを走らせるとLEDが交互に点灯と消灯を繰り返す。
+  01にLED点灯制御を追加したバージョン。
+
+  (bootload)
+    LEDコマンドを使ってLEDの点灯と消灯ができる。
+    led1, led2, ledg, ledrが追加されたコマンド。
+
+  (os)
+    オリジナルのclock.cはreadyという文字列を出力する実装だった。
+    ここにLED1とLED2を交互に点灯させるコードを追加し、readyの文字列
+    出力を削除した。
+    bootloadと同様にled1, led2, ledg, ledrコマンドも使用可能である。
 
 ======================================================================
 tools/kz_h8write