Treehouse Mbed Team / Mbed 2 deprecated 1U5_proto_X

Dependencies:   mbed

Committer:
Slord2142
Date:
Tue Dec 06 18:47:01 2022 +0000
Revision:
1:bc3509459a27
Parent:
0:b3410a1e9843
Helix commit 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Slord2142 0:b3410a1e9843 1 //-------------------------------------------------------------------------------
Slord2142 0:b3410a1e9843 2 //
Slord2142 0:b3410a1e9843 3 // Treehouse Inc.
Slord2142 0:b3410a1e9843 4 // Colorado Springs, Colorado
Slord2142 0:b3410a1e9843 5 //
Slord2142 0:b3410a1e9843 6 // Copyright (c) 2016 by Treehouse Designs Inc.
Slord2142 0:b3410a1e9843 7 //
Slord2142 0:b3410a1e9843 8 // This code is the property of Treehouse, Inc. (Treehouse) and may not be redistributed
Slord2142 0:b3410a1e9843 9 // in any form without prior written permission from the copyright holder, Treehouse.
Slord2142 0:b3410a1e9843 10 //
Slord2142 0:b3410a1e9843 11 // The above copyright notice and this permission notice shall be included in
Slord2142 0:b3410a1e9843 12 // all copies or substantial portions of the Software.
Slord2142 0:b3410a1e9843 13 //
Slord2142 0:b3410a1e9843 14 //-------------------------------------------------------------------------------
Slord2142 0:b3410a1e9843 15 //
Slord2142 0:b3410a1e9843 16 // REVISION HISTORY:
Slord2142 0:b3410a1e9843 17 //
Slord2142 0:b3410a1e9843 18 // $Author: $
Slord2142 0:b3410a1e9843 19 // $Rev: $
Slord2142 0:b3410a1e9843 20 // $Date: $
Slord2142 0:b3410a1e9843 21 // $URL: $
Slord2142 0:b3410a1e9843 22 //
Slord2142 0:b3410a1e9843 23 //-------------------------------------------------------------------------------
Slord2142 0:b3410a1e9843 24
Slord2142 0:b3410a1e9843 25 #include "mbed.h"
Slord2142 0:b3410a1e9843 26 #include "clocks.h"
Slord2142 0:b3410a1e9843 27 #include "globals.h"
Slord2142 0:b3410a1e9843 28 #include "Ticker.h"
Slord2142 0:b3410a1e9843 29 #include "stdlib.h"
Slord2142 0:b3410a1e9843 30 #include "all_io.h"
Slord2142 0:b3410a1e9843 31 //#include "menu.h"
Slord2142 0:b3410a1e9843 32 unsigned short i;
Slord2142 1:bc3509459a27 33 unsigned int numOn;
Slord2142 0:b3410a1e9843 34
Slord2142 0:b3410a1e9843 35 int enkey[6] = {2, 1, 1, 1, 1, 1};
Slord2142 0:b3410a1e9843 36
Slord2142 0:b3410a1e9843 37 volatile bool dosFlip = FALSE;
Slord2142 0:b3410a1e9843 38 volatile bool dofFlip = FALSE;
Slord2142 0:b3410a1e9843 39 volatile bool enable = FALSE;
Slord2142 0:b3410a1e9843 40 volatile bool stepForward = FALSE;
Slord2142 0:b3410a1e9843 41
Slord2142 0:b3410a1e9843 42 void slowFlip() {
Slord2142 0:b3410a1e9843 43 dosFlip = TRUE;
Slord2142 0:b3410a1e9843 44 }
Slord2142 0:b3410a1e9843 45
Slord2142 0:b3410a1e9843 46 void fastFlip() {
Slord2142 0:b3410a1e9843 47 dofFlip = TRUE;
Slord2142 0:b3410a1e9843 48 }
Slord2142 0:b3410a1e9843 49
Slord2142 0:b3410a1e9843 50 void initOut(void){
Slord2142 0:b3410a1e9843 51 /*
Slord2142 0:b3410a1e9843 52 en1 = 1;
Slord2142 0:b3410a1e9843 53 en2 = 1;
Slord2142 0:b3410a1e9843 54 en4 = 1;
Slord2142 0:b3410a1e9843 55 en8 = 1;
Slord2142 0:b3410a1e9843 56 en16 = 1;
Slord2142 0:b3410a1e9843 57 en32 = 1;*/
Slord2142 1:bc3509459a27 58 for(i = 0; i < 5; i++){
Slord2142 0:b3410a1e9843 59 en[i] = 1;
Slord2142 0:b3410a1e9843 60 }
Slord2142 1:bc3509459a27 61 en[5] = 0;
Slord2142 0:b3410a1e9843 62 }
Slord2142 0:b3410a1e9843 63 /*
Slord2142 0:b3410a1e9843 64 void flipSlow(void){
Slord2142 0:b3410a1e9843 65 dosFlip = FALSE;
Slord2142 0:b3410a1e9843 66 if(enable != TRUE){
Slord2142 0:b3410a1e9843 67 //for (i = numFast; i < 36; i++){
Slord2142 0:b3410a1e9843 68 // if (ec[i] == 1){
Slord2142 0:b3410a1e9843 69 // ec[i] = 0;
Slord2142 0:b3410a1e9843 70 // }else{
Slord2142 0:b3410a1e9843 71 // ec[i] = 1;
Slord2142 0:b3410a1e9843 72 // }
Slord2142 0:b3410a1e9843 73 //}
Slord2142 0:b3410a1e9843 74 for (i = 0; i < 6; i++){
Slord2142 0:b3410a1e9843 75 if (enkey[i] != 1){
Slord2142 0:b3410a1e9843 76 if (en[i] == 1){
Slord2142 0:b3410a1e9843 77 en[i] = 0;
Slord2142 0:b3410a1e9843 78 }else{
Slord2142 0:b3410a1e9843 79 en[i] = 1;
Slord2142 0:b3410a1e9843 80 }
Slord2142 0:b3410a1e9843 81 }
Slord2142 0:b3410a1e9843 82 }
Slord2142 0:b3410a1e9843 83 }
Slord2142 0:b3410a1e9843 84 }
Slord2142 0:b3410a1e9843 85
Slord2142 0:b3410a1e9843 86 void flipFast(void){
Slord2142 0:b3410a1e9843 87 dofFlip = FALSE;
Slord2142 0:b3410a1e9843 88 if(enable == TRUE){
Slord2142 0:b3410a1e9843 89 for (i = 0; i < 6; i++){
Slord2142 0:b3410a1e9843 90 if (en[i] == 1){
Slord2142 0:b3410a1e9843 91 en[i] = 0;
Slord2142 0:b3410a1e9843 92 }else{
Slord2142 0:b3410a1e9843 93 en[i] = 1;
Slord2142 0:b3410a1e9843 94 }
Slord2142 0:b3410a1e9843 95 }
Slord2142 0:b3410a1e9843 96 }else{
Slord2142 0:b3410a1e9843 97 for (i = 0; i < 6; i++){
Slord2142 0:b3410a1e9843 98 if (enkey[i] == 1){
Slord2142 0:b3410a1e9843 99 if (en[i] == 1){
Slord2142 0:b3410a1e9843 100 en[i] = 0;
Slord2142 0:b3410a1e9843 101 }else{
Slord2142 0:b3410a1e9843 102 en[i] = 1;
Slord2142 0:b3410a1e9843 103 }
Slord2142 0:b3410a1e9843 104 }
Slord2142 0:b3410a1e9843 105 }
Slord2142 0:b3410a1e9843 106 }
Slord2142 0:b3410a1e9843 107 }
Slord2142 0:b3410a1e9843 108
Slord2142 0:b3410a1e9843 109 void checkFlip(void){
Slord2142 0:b3410a1e9843 110 if(dosFlip == TRUE){
Slord2142 0:b3410a1e9843 111 flipSlow();
Slord2142 0:b3410a1e9843 112 }
Slord2142 0:b3410a1e9843 113 if(dofFlip == TRUE){
Slord2142 0:b3410a1e9843 114 flipFast();
Slord2142 0:b3410a1e9843 115 }
Slord2142 0:b3410a1e9843 116 if(enable == TRUE) {
Slord2142 0:b3410a1e9843 117 for (i=0; i < 6; i++) {
Slord2142 0:b3410a1e9843 118 en[i] = 1;
Slord2142 0:b3410a1e9843 119 }
Slord2142 0:b3410a1e9843 120 }
Slord2142 0:b3410a1e9843 121 }
Slord2142 0:b3410a1e9843 122
Slord2142 0:b3410a1e9843 123 void progress(void){
Slord2142 0:b3410a1e9843 124 for (i = 0; i < 5; i++){
Slord2142 0:b3410a1e9843 125 if (stepForward == TRUE){
Slord2142 0:b3410a1e9843 126 en[i] = 1;
Slord2142 0:b3410a1e9843 127 enkey[i] = 2;
Slord2142 0:b3410a1e9843 128 stepForward = FALSE;
Slord2142 0:b3410a1e9843 129 } else if (enkey[i] == 2) {
Slord2142 0:b3410a1e9843 130 en[i] = 0;
Slord2142 0:b3410a1e9843 131 enkey[i] = 1;
Slord2142 0:b3410a1e9843 132 stepForward = TRUE;
Slord2142 0:b3410a1e9843 133 }
Slord2142 0:b3410a1e9843 134 }
Slord2142 0:b3410a1e9843 135 }
Slord2142 0:b3410a1e9843 136
Slord2142 0:b3410a1e9843 137 void ILR(void){
Slord2142 0:b3410a1e9843 138 enable = TRUE;
Slord2142 0:b3410a1e9843 139 flipFast();
Slord2142 0:b3410a1e9843 140 }*/
Slord2142 0:b3410a1e9843 141
Slord2142 0:b3410a1e9843 142 void ILR(void){
Slord2142 0:b3410a1e9843 143 enable = TRUE;
Slord2142 0:b3410a1e9843 144 }
Slord2142 0:b3410a1e9843 145
Slord2142 0:b3410a1e9843 146 void setClocks(int num){
Slord2142 1:bc3509459a27 147 numOn = num;
Slord2142 0:b3410a1e9843 148 if (num == 32 or enable == TRUE){
Slord2142 0:b3410a1e9843 149 en[5] = 1;
Slord2142 0:b3410a1e9843 150 } else {
Slord2142 1:bc3509459a27 151 en[5] = 0;
Slord2142 0:b3410a1e9843 152 if (num >= 16) {
Slord2142 0:b3410a1e9843 153 en[4] = 1;
Slord2142 0:b3410a1e9843 154 num = num - 16;
Slord2142 0:b3410a1e9843 155 } else {
Slord2142 0:b3410a1e9843 156 en[4] = 0;
Slord2142 0:b3410a1e9843 157 }
Slord2142 0:b3410a1e9843 158 if (num >= 8) {
Slord2142 0:b3410a1e9843 159 en[3] = 1;
Slord2142 0:b3410a1e9843 160 num = num - 8;
Slord2142 0:b3410a1e9843 161 } else {
Slord2142 0:b3410a1e9843 162 en[3] = 0;
Slord2142 0:b3410a1e9843 163 }
Slord2142 0:b3410a1e9843 164 if (num >= 4) {
Slord2142 0:b3410a1e9843 165 en[2] = 1;
Slord2142 0:b3410a1e9843 166 num = num - 4;
Slord2142 0:b3410a1e9843 167 } else {
Slord2142 0:b3410a1e9843 168 en[2] = 0;
Slord2142 0:b3410a1e9843 169 }
Slord2142 0:b3410a1e9843 170 if (num >= 2) {
Slord2142 0:b3410a1e9843 171 en[1] = 1;
Slord2142 0:b3410a1e9843 172 num = num - 2;
Slord2142 0:b3410a1e9843 173 } else {
Slord2142 0:b3410a1e9843 174 en[1] = 0;
Slord2142 0:b3410a1e9843 175 }
Slord2142 0:b3410a1e9843 176 if (num == 1) {
Slord2142 0:b3410a1e9843 177 en[0] = 1;
Slord2142 0:b3410a1e9843 178 } else {
Slord2142 0:b3410a1e9843 179 en[0] = 0;
Slord2142 0:b3410a1e9843 180 }
Slord2142 0:b3410a1e9843 181 }
Slord2142 1:bc3509459a27 182 WR = 1;
Slord2142 1:bc3509459a27 183 wait_us(250);
Slord2142 1:bc3509459a27 184 WR = 0;
Slord2142 0:b3410a1e9843 185 }