More HACMan stuff again

Dependencies:   FatFileSystem SDFileSystem mbed

Committer:
TBSliver
Date:
Thu Jun 11 13:50:10 2015 +0000
Revision:
0:ddc821040077
Initial no idea whats here commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TBSliver 0:ddc821040077 1 #include "ledSign.h"
TBSliver 0:ddc821040077 2
TBSliver 0:ddc821040077 3 // Sign Output Pins
TBSliver 0:ddc821040077 4
TBSliver 0:ddc821040077 5 BusOut address(p17, p18, p19, p20); // Address 0 to 16
TBSliver 0:ddc821040077 6 BusOut colour(p15, p16); // 0 = off, 1 = red, 2 = green, 3 = orange
TBSliver 0:ddc821040077 7
TBSliver 0:ddc821040077 8 DigitalOut abTop(p14); // bank A or B switch for Top Row - 0 = A, 1 = B
TBSliver 0:ddc821040077 9 DigitalOut clkTop(p13); // clock for Top Row
TBSliver 0:ddc821040077 10 DigitalOut weTop(p28); // Write Enable for Top Row
TBSliver 0:ddc821040077 11 DigitalOut aeTop(p27); // Address Enable for Top Row
TBSliver 0:ddc821040077 12 DigitalOut enbTop(p26); // Enable for Top Row
TBSliver 0:ddc821040077 13
TBSliver 0:ddc821040077 14 DigitalOut abBot(p25); // bank A or B switch for Bottom Row - 0 = A, 1 = B
TBSliver 0:ddc821040077 15 DigitalOut clkBot(p24); // clock for Bottom Row
TBSliver 0:ddc821040077 16 DigitalOut weBot(p23); // Write Enable for Bottom Row
TBSliver 0:ddc821040077 17 DigitalOut aeBot(p22); // Address Enable for Bottom Row
TBSliver 0:ddc821040077 18 DigitalOut enbBot(p21); // Enable for Bottom Row
TBSliver 0:ddc821040077 19
TBSliver 0:ddc821040077 20 LedSign::LedSign() {
TBSliver 0:ddc821040077 21 address = 0;
TBSliver 0:ddc821040077 22 colour = 0;
TBSliver 0:ddc821040077 23 abTop = 0;
TBSliver 0:ddc821040077 24 clkTop = 0;
TBSliver 0:ddc821040077 25 weTop = 0;
TBSliver 0:ddc821040077 26 aeTop = 0;
TBSliver 0:ddc821040077 27 enbTop = 0;
TBSliver 0:ddc821040077 28 abBot = 0;
TBSliver 0:ddc821040077 29 clkBot = 0;
TBSliver 0:ddc821040077 30 weBot = 0;
TBSliver 0:ddc821040077 31 aeBot = 0;
TBSliver 0:ddc821040077 32 enbBot = 0;
TBSliver 0:ddc821040077 33 }
TBSliver 0:ddc821040077 34
TBSliver 0:ddc821040077 35 void LedSign::enable() {
TBSliver 0:ddc821040077 36 enbTop = 1;
TBSliver 0:ddc821040077 37 enbBot = 1;
TBSliver 0:ddc821040077 38 }
TBSliver 0:ddc821040077 39
TBSliver 0:ddc821040077 40 void LedSign::disable() {
TBSliver 0:ddc821040077 41 enbTop = 0;
TBSliver 0:ddc821040077 42 enbBot = 0;
TBSliver 0:ddc821040077 43 }
TBSliver 0:ddc821040077 44
TBSliver 0:ddc821040077 45 void LedSign::swapBank() {
TBSliver 0:ddc821040077 46 (abTop) ? abTop = 0 : abTop = 1;
TBSliver 0:ddc821040077 47 (abBot) ? abBot = 0 : abBot = 1;
TBSliver 0:ddc821040077 48 }
TBSliver 0:ddc821040077 49
TBSliver 0:ddc821040077 50 void LedSign::writeRow(int * pointer, int wRow) {
TBSliver 0:ddc821040077 51 if(wRow <= 15) {
TBSliver 0:ddc821040077 52 for(int col = 0; col < 128; col++) {
TBSliver 0:ddc821040077 53 colour = *(pointer + col);
TBSliver 0:ddc821040077 54 clockTop();
TBSliver 0:ddc821040077 55 }
TBSliver 0:ddc821040077 56
TBSliver 0:ddc821040077 57 writeTop(wRow);
TBSliver 0:ddc821040077 58 }
TBSliver 0:ddc821040077 59 if(wRow >= 16) {
TBSliver 0:ddc821040077 60 for(int col = 0; col < 128; col++) {
TBSliver 0:ddc821040077 61 colour = *(pointer + col);
TBSliver 0:ddc821040077 62 clockBot();
TBSliver 0:ddc821040077 63 }
TBSliver 0:ddc821040077 64
TBSliver 0:ddc821040077 65 writeBot(wRow - 16);
TBSliver 0:ddc821040077 66 }
TBSliver 0:ddc821040077 67 }
TBSliver 0:ddc821040077 68
TBSliver 0:ddc821040077 69 void LedSign::writeScreenColour(int newColour) {
TBSliver 0:ddc821040077 70 colour = newColour; //set colour to write to screen
TBSliver 0:ddc821040077 71 for (int i=0; i<128; i++) { // clock in 128 bits to turn all the LED's on
TBSliver 0:ddc821040077 72 clockIn();
TBSliver 0:ddc821040077 73 }
TBSliver 0:ddc821040077 74
TBSliver 0:ddc821040077 75 for (int i=0; i<16; i++) { //actually write them for all lines
TBSliver 0:ddc821040077 76 writeTop(i);
TBSliver 0:ddc821040077 77 writeBot(i);
TBSliver 0:ddc821040077 78 }
TBSliver 0:ddc821040077 79
TBSliver 0:ddc821040077 80 swapBank();
TBSliver 0:ddc821040077 81
TBSliver 0:ddc821040077 82 }
TBSliver 0:ddc821040077 83
TBSliver 0:ddc821040077 84 //********************Private Declerations********************
TBSliver 0:ddc821040077 85
TBSliver 0:ddc821040077 86 void LedSign::writeTop(int topAddress) {
TBSliver 0:ddc821040077 87 address = topAddress;
TBSliver 0:ddc821040077 88 aeTop = 1;
TBSliver 0:ddc821040077 89 wait_us(1);
TBSliver 0:ddc821040077 90 weTop = 1;
TBSliver 0:ddc821040077 91 wait_us(1);
TBSliver 0:ddc821040077 92 weTop = 0;
TBSliver 0:ddc821040077 93 wait_us(1);
TBSliver 0:ddc821040077 94 aeTop = 0;
TBSliver 0:ddc821040077 95 wait_us(1);
TBSliver 0:ddc821040077 96 }
TBSliver 0:ddc821040077 97
TBSliver 0:ddc821040077 98 void LedSign::writeBot(int botAddress) {
TBSliver 0:ddc821040077 99 address = botAddress;
TBSliver 0:ddc821040077 100 aeBot = 1;
TBSliver 0:ddc821040077 101 wait_us(1);
TBSliver 0:ddc821040077 102 weBot = 1;
TBSliver 0:ddc821040077 103 wait_us(1);
TBSliver 0:ddc821040077 104 weBot = 0;
TBSliver 0:ddc821040077 105 wait_us(1);
TBSliver 0:ddc821040077 106 aeBot = 0;
TBSliver 0:ddc821040077 107 wait_us(1);
TBSliver 0:ddc821040077 108 }
TBSliver 0:ddc821040077 109
TBSliver 0:ddc821040077 110 void LedSign::clockTop() {
TBSliver 0:ddc821040077 111 wait_us(1);
TBSliver 0:ddc821040077 112 clkTop = 1;
TBSliver 0:ddc821040077 113 wait_us(1);
TBSliver 0:ddc821040077 114 clkTop = 0;
TBSliver 0:ddc821040077 115 wait_us(1);
TBSliver 0:ddc821040077 116 }
TBSliver 0:ddc821040077 117
TBSliver 0:ddc821040077 118 void LedSign::clockBot() {
TBSliver 0:ddc821040077 119 wait_us(1);
TBSliver 0:ddc821040077 120 clkBot = 1;
TBSliver 0:ddc821040077 121 wait_us(1);
TBSliver 0:ddc821040077 122 clkBot = 0;
TBSliver 0:ddc821040077 123 wait_us(1);
TBSliver 0:ddc821040077 124 }
TBSliver 0:ddc821040077 125
TBSliver 0:ddc821040077 126 void LedSign::clockIn() {
TBSliver 0:ddc821040077 127 wait_us(1);
TBSliver 0:ddc821040077 128 clkTop = 1;
TBSliver 0:ddc821040077 129 clkBot = 1;
TBSliver 0:ddc821040077 130 wait_us(1);
TBSliver 0:ddc821040077 131 clkTop = 0;
TBSliver 0:ddc821040077 132 clkBot = 0;
TBSliver 0:ddc821040077 133 wait_us(1);
TBSliver 0:ddc821040077 134 }