Tyler Altenhofen / Mbed 2 deprecated TylerPOV

Dependencies:   mbed

main.cpp

Committer:
tyleralt
Date:
2015-04-07
Revision:
0:d9730cf42ecc
Child:
1:ea12b9153c51

File content as of revision 0:d9730cf42ecc:

#include "mbed.h"

#define BUFFER_SIZE 16
#define NUMBER_OF_SLICES 90

//DigitalOut Pins
DigitalOut pushRegister(p23);
DigitalOut pushBit(p24);

DigitalOut dataArmOne(p15);
DigitalOut dataArmTwo(p16);
DigitalOut dataArmThree(p17);
DigitalOut dataArmFour(p18);
DigitalOut dataArmFive(p19);
DigitalOut dataArmSix(p20);
DigitalOut dataArmSeven(p21);
DigitalOut dataArmEight(p22);

//Enable Interupt
InterruptIn hallSensor(p25);

//Set Up Timer
Timer rotationTime;

//Declare global vars
int slice_time;
int rotate_time;
int current_slice;
int [NUMBER_OF_SLICES][8][BUFFER_SIZE] slice_data; //[slice][forSepcificArm][eachBit]
Ticker updateLeds;
int firstTime;

Serial pc(USBTX, USBRX); // tx, rx


//Hall sensor interupt
void rotate_sense(){
  if (firstTime){
    rotationTime.reset();
    rotationTime.start();
    firstTime = 0;
  }
    rotate_time = rotationTime.read_us();
    rotationTime.reset();    
    rotate_interrupt = 1;
    rotationTime.start();
    
    slice_time = rotate_time/NUMBER_OF_SLICES;
    current_slice = 0;
    updateLeds.attach(&nextLedPush, slice_time);
}

void pushData (int [][] bits){
  for (int i = 0; i < bit [0].length; i ++){
    dataArmOne = bits [0][i];
    dataArmTwo = bits [1][i];
    dataArmThree = bits [2][i];
    dataArmFour = bits [3][i];
    dataArmFive = bits [4][i];
    dataArmSix = bits [5][i];
    dataArmSeven = bits [6][i];
    dataArmEight = bits [7][i];
    
    clock = 1;
    clock = 0;
  }
}


//periodic display interrupt
void nextLedPush(){
  pushData(slice_data[current_slice]);
  pushRegister = 1;
  pushRegister = 0;
  current_slice ++;
}

int main() {
  firstTime = 1;
    
    hallSensor.fall(&rotate_sense);
    for (int i = 0; i < slice_data [0].length / 2; i ++){
      slice_data [i][0] = [1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0];
    }
    for (int i = slice_data [0].length / 2; i < slice_data[0].length; i++){
      slice_data [i][0] = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
    }
    
    while(1) {
      //TODO: add in the ability to update the buffers 
    }
}