LAB1
Dependencies: mbed
Fork of mbed_blinky by
Diff: main.cpp
- Revision:
- 20:12c90bd3e6e0
- Parent:
- 4:81cea7a352b0
diff -r 2157e25073b7 -r 12c90bd3e6e0 main.cpp --- a/main.cpp Mon Dec 25 03:11:29 2017 +0000 +++ b/main.cpp Wed Jan 31 00:41:06 2018 +0000 @@ -1,12 +1,113 @@ #include "mbed.h" - -DigitalOut myled(LED1); - + #include "string" + #include "ctype.h" + +Serial pc(USBTX, USBRX); +DigitalOut led1(LED1); +DigitalIn button(PC_13); + + +//function that recursively calls itself +void scan(){ + + //array of strings for checking input + char* str[4]; + int j = 0; + str[0] = "led off"; + str[1] = "led off"; + str[2] = "button"; + str[3] = "blink"; + //init counters and arrays + int t = 0; + int i = 0; + int val=0; + int err = 1; + char s[31]; + char nums[2]; + + //loop that grabs what is typed and puts it in a string + while (i<30) { + s[i]=pc.getc(); + if(s[i]!=0x0d){ + pc.putc(s[i]); + i++; + } + else{ + break; + } + } + //adds null character to end of string and prints + s[i]='\0'; + printf("%s", s); + + + //while loop to check what string is entered + while(j < 4){ + val = strcmp(s, str[j]); + + + if(val == 0 && j == 0){ + led1 = 1; + err = 0; + } + else if (val== 0 && j == 1){ + led1 = 0; + err = 0; + } + + + else if(val == 0 && j == 2){ + err = 0; + if (button.read()){ + char p[] = "RELEASED\n"; + printf("%s\n", p); + } + else { + char p1[] = "PRESSED\n"; + printf("%s\n", p1); + } + } + //if blink is entered, this grabs the value typed + else if(val==0 && j==3){ + err = 0; + int counter = 0; + int count = 0; + int numBlinks=0; + printf("num blinks:%d",numBlinks); + while(s[t] != '\0'){ + if(isdigit(s[t])){ + nums[count] = s[t]; + count++; + t++;} + + else t++; + } + + + numBlinks = atoi(nums); + + + + //implementation of number of blinks + while(counter > numBlinks){ + led1 = !led1; + wait(0.5); + counter++; + } + } + + j++; + + + + } + + //recrussive call + scan(); +} + +//main function that just calls the recurssive funciton scan int main() { - while(1) { - myled = 1; - wait(0.2); - myled = 0; - wait(0.2); - } + pc.printf("cps%"); + scan(); }