From 9cd950b00c9a2f6b6b995a55aadfdfc8084b3557 Mon Sep 17 00:00:00 2001 From: Marek Kubica Date: Sun, 16 Nov 2014 11:28:57 +0100 Subject: [PATCH] Added analogRead/analogWrite --- src/WiringPi.ml | 3 +++ src/WiringPi_stubs.c | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/WiringPi.ml b/src/WiringPi.ml index e1031ac..3012011 100644 --- a/src/WiringPi.ml +++ b/src/WiringPi.ml @@ -35,6 +35,9 @@ external pwmWrite : int -> int -> unit = "caml_pwmWrite" external digitalRead : int -> int = "caml_digitalRead" external digitalWriteByte : int -> unit = "caml_digitalWriteByte" +external analogRead: int -> int = "caml_analogRead" +external analogWrite: int -> int -> unit = "caml_analogWrite" + (* ########## Timing ########## *) (* Use it to wait a few ms or µs. If you want to wait for several diff --git a/src/WiringPi_stubs.c b/src/WiringPi_stubs.c index 133158e..20e9c32 100644 --- a/src/WiringPi_stubs.c +++ b/src/WiringPi_stubs.c @@ -76,7 +76,18 @@ value caml_digitalRead(value pin) CAMLreturn(Val_int(digitalRead(Int_val(pin)))); } -// AnalogRead and AnalogWrite needs to be added (module must be added) +value caml_analogRead(value pin) +{ + CAMLparam1(pin); + CAMLreturn(Val_int(analogRead(Int_val(pin)))); +} + +value caml_analogWrite(value pin, value value_p) +{ + CAMLparam2(pin, value_p); + analogWrite(Int_val(pin), Int_val(value_p)); + CAMLreturn(Val_unit); +} // Raspberry Pi Specifics