aboutsummaryrefslogtreecommitdiff
path: root/GEOLOC/lib/dragino.c
diff options
context:
space:
mode:
authorVotre Nom <git-account@loicguegan.fr>2017-08-30 10:48:11 +0400
committerVotre Nom <git-account@loicguegan.fr>2017-08-30 10:48:11 +0400
commitf37f200792444fee2f74e807acfd5be7c9180cd7 (patch)
tree135975e83d27a144d56f27e1ee4dc6fe0fe91af0 /GEOLOC/lib/dragino.c
Init repo
Diffstat (limited to 'GEOLOC/lib/dragino.c')
-rw-r--r--GEOLOC/lib/dragino.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/GEOLOC/lib/dragino.c b/GEOLOC/lib/dragino.c
new file mode 100644
index 0000000..30de48a
--- /dev/null
+++ b/GEOLOC/lib/dragino.c
@@ -0,0 +1,40 @@
+#include "dragino.h"
+
+
+void initPins(){
+ // Init WiringPi
+ wiringPiSetup();
+ pinMode(NSS_PIN, OUTPUT);
+ pinMode(DIO0_PIN, INPUT);
+ pinMode(RESET_PIN, OUTPUT);
+ wiringPiSPISetup(CHANNEL, BIT_RATE);
+}
+
+byte readReg(byte address){
+ byte buffer[2];
+ buffer[0]=address & 0x7F; // Set read flag (SX1276 datasheet page 80)
+ buffer[1]=0x00;
+
+ digitalWrite(NSS_PIN, LOW);
+ wiringPiSPIDataRW(CHANNEL, buffer, 2);
+ digitalWrite(NSS_PIN, HIGH);
+
+ return(buffer[1]);
+}
+void writeReg(byte address, byte data){
+ byte buffer[2];
+ buffer[0]=address | 0x80; // Set write flag (SX1276 datasheet page 80)
+ buffer[1]=data;
+
+ digitalWrite(NSS_PIN, LOW);
+ wiringPiSPIDataRW(CHANNEL, buffer, 2);
+ digitalWrite(NSS_PIN, HIGH);
+}
+
+void reset(){
+ // SX1276 datasheet page 116
+ digitalWrite(RESET_PIN, LOW);
+ delay(100);
+ digitalWrite(RESET_PIN, HIGH);
+ delay(100);
+}