aboutsummaryrefslogtreecommitdiff
path: root/GEOLOC/lib/dragino.c
blob: 30de48ac0a925b4dea2145e47873e81d57549456 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
}