Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 } }