Add test_led with lot's of interesting test functions (not documented yet), and the file sapin_noel is for 2 reg now.

This commit is contained in:
Tobias Bora 2013-12-15 07:40:30 +01:00
parent 72dce7118a
commit 1a7b22e8d4
4 changed files with 104 additions and 4 deletions

View File

@ -11,6 +11,7 @@ OUTPUT=$(MAIN:.ml=.bin)
all: $(OBJECTS) all: $(OBJECTS)
$(CC) $(OPT) -cclib -lwiringPi unix.cma $(SOURCES) $(MAIN) -o $(OUTPUT) $(CC) $(OPT) -cclib -lwiringPi unix.cma $(SOURCES) $(MAIN) -o $(OUTPUT)
$(CC) $(OPT) -cclib -lwiringPi unix.cma $(SOURCES) test_led.ml -o test_led.bin
clean: clean:
rm -f *.cmo *.cmi *.cmx rm -f *.cmo *.cmi *.cmx

Binary file not shown.

View File

@ -28,18 +28,37 @@ let anim_01 reg leds n =
clearLeds leds; clearLeds leds;
for k = 0 to (Array.length leds) - 1 do for k = 0 to (Array.length leds) - 1 do
leds.(k) <- true; leds.(k) <- true;
applyReg reg leds 0.1; applyReg reg leds 0.2;
leds.(k) <- false leds.(k) <- false
done; done;
for k = (Array.length leds) - 2 downto 0 do for k = (Array.length leds) - 2 downto 0 do
leds.(k) <- true; leds.(k) <- true;
applyReg reg leds 0.1; applyReg reg leds 0.2;
leds.(k) <- false leds.(k) <- false
done; done;
lightLeds leds; lightLeds leds;
applyReg reg leds 1.; applyReg reg leds 1.;
done done
let anim_02 reg leds n =
let t = ref 1. in
for i = 0 to n do
clearLeds leds;
for k = 0 to (Array.length leds) - 1 do
leds.(k) <- true;
applyReg reg leds (!t /. 10.);
leds.(k) <- false
done;
for k = (Array.length leds) - 2 downto 0 do
leds.(k) <- true;
applyReg reg leds (!t /. 10.);
leds.(k) <- false
done;
lightLeds leds;
applyReg reg leds !t;
t := !t /. 1.2;
done
let _ = let _ =
(* On choisit le mode d'affichage Phys *) (* On choisit le mode d'affichage Phys *)
ignore(setupPhys ()); ignore(setupPhys ());
@ -47,9 +66,9 @@ let _ =
(* On crée le register *) (* On crée le register *)
(* En mode pulse : *) (* En mode pulse : *)
(* let reg = genReg 11 13 15 ~pulse:true in *) (* let reg = genReg 11 13 15 ~pulse:true in *)
let reg = genReg 11 13 15 in let reg = genReg 11 13 15 ~invert:false in
(* On initialise *) (* On initialise *)
let leds = initReg reg ~nb_reg:1 in let leds = initReg reg ~nb_reg:2 in
let t = true let t = true
and f = false in and f = false in
Printf.printf "Début\n%!"; Printf.printf "Début\n%!";

80
test_led.ml Normal file
View File

@ -0,0 +1,80 @@
open WiringPiOcaml;;
open ShiftReg;;
let test reg leds =
lightLeds leds;
(* Pour montrer la différence entre les deux modes *)
Printf.printf "The pulse mode...\n%!";
applyRegPulse reg leds 2.;
Printf.printf "The classic mode...\n%!";
applyRegAll reg leds;
Unix.sleep 2;
Printf.printf "Only one led :\n%!";
clearLeds leds;
leds.(1) <- true;
Printf.printf "The pulse mode...\n%!";
applyRegPulse reg leds 2.;
Printf.printf "The classic mode...\n%!";
applyRegAll reg leds;
Unix.sleep 2
let _ =
let what = Sys.argv.(1) in
Printf.printf "%s\n" Sys.argv.(1);
ignore(setupPhys ());
let reg = genReg 11 13 15 ~invert:false in
let leds = initReg reg ~nb_reg:2 in
let t = true
and f = false in
clearLeds leds;
if what = "g" then begin
let make_t n k =
clearLeds leds;
for k = 0 to Array.length leds - 1 do
if k mod 3 = 0 then
leds.(k) <- t;
done
in
make_t 3 0;
let t1 = Array.copy leds in
make_t 3 1;
let t2 = Array.copy leds in
make_t 3 2;
let t3 = Array.copy leds in
let t = [|t1;t2;t3|] in
while true do
applyReg reg t1 0.5;
applyReg reg t2 0.5;
applyReg reg t3 0.5;
done
end
else if what = "a" then begin
lightLeds leds;
while true do
applyReg reg leds 10.;
done;
end
else if what = "e" then begin
clearLeds leds;
while true do
applyReg reg leds 10.;
done;
end
else if what = "f" then begin
findLedNumber reg leds;
end
else if what = "obo" then begin
clearLeds leds;
leds.(int_of_string Sys.argv.(2)) <- t;
applyReg reg leds 10.;
end
(*
9 -> saute la 7e (première du nvx)
15 --> réagit légèrement
*)