Hardware Reference
In-Depth Information
Listing 16-3 continued
digitalWrite(CS_ENC, HIGH);
pinMode(CK_ENC, OUTPUT);
digitalWrite(CK_ENC, HIGH); // set clock high
pinMode(MOSI_ENC, OUTPUT);
digitalWrite(MOSI_ENC, LOW);
pinMode(MISO_ENC, INPUT);
interval = 20; // time between samples
timeToSample = millis() + interval;
for(int i = 0; i<4; i++){ // initialise indicator LEDs
pinMode(ledRed[i], OUTPUT);
pinMode(ledGreen[i], OUTPUT);
}
upDateLEDs(np);
delay(100); // allow sensor to power up
pinMode(A5,OUTPUT);
digitalWrite(A5,LOW);
if(calabrate){
encRead(); // get offset
calabrate = false; // calibration done
}
}
void loop(){
if(millis() >= timeToSample && active) {
// send data if we should
digitalWrite(13, HIGH);
timeToSample = millis() + interval;
encRead();
sendData();
digitalWrite(13,LOW);
}
else {
if(Serial.available() != 0) {
// switch on / off sample sending
char rx = Serial.read();
switch (rx) {
case'G': // Go - start sending samples
active = true;
break;
case'S': // Stop - stop sending samples
active = false;
break;
case '2':
Search WWH ::




Custom Search