ECE 4180 / Mbed 2 deprecated 4180_T2_Workspace

Dependencies:   mbed 4DGL-uLCD-SE

Committer:
glanier9
Date:
Wed Apr 07 15:10:47 2021 +0000
Revision:
1:dc89a801cfa2
Parent:
0:a91a9be54fc2
Added a comment to remind to delete comments before submission;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glanier9 1:dc89a801cfa2 1 /*
glanier9 1:dc89a801cfa2 2
glanier9 1:dc89a801cfa2 3 DELETE ANY COMMENTS BEFORE SUBMITTING EXAM
glanier9 1:dc89a801cfa2 4
glanier9 1:dc89a801cfa2 5 */
glanier9 1:dc89a801cfa2 6
glanier9 1:dc89a801cfa2 7
glanier9 0:a91a9be54fc2 8 // Given Includes and Global Vars
glanier9 0:a91a9be54fc2 9
glanier9 0:a91a9be54fc2 10
glanier9 0:a91a9be54fc2 11 // Added Global Vars
glanier9 0:a91a9be54fc2 12 Mutex LCD;
glanier9 0:a91a9be54fc2 13 Timer timer;
glanier9 0:a91a9be54fc2 14
glanier9 0:a91a9be54fc2 15
glanier9 0:a91a9be54fc2 16 // Thread Callbacks
glanier9 0:a91a9be54fc2 17 void callback1(void const *argument)
glanier9 0:a91a9be54fc2 18 {
glanier9 0:a91a9be54fc2 19 while(1) {
glanier9 0:a91a9be54fc2 20
glanier9 0:a91a9be54fc2 21 Thread::wait(500);
glanier9 0:a91a9be54fc2 22 }
glanier9 0:a91a9be54fc2 23 }
glanier9 0:a91a9be54fc2 24
glanier9 0:a91a9be54fc2 25 void callback2(void const *argument)
glanier9 0:a91a9be54fc2 26 {
glanier9 0:a91a9be54fc2 27 while(1) {
glanier9 0:a91a9be54fc2 28
glanier9 0:a91a9be54fc2 29 Thread::wait(500);
glanier9 0:a91a9be54fc2 30 }
glanier9 0:a91a9be54fc2 31 }
glanier9 0:a91a9be54fc2 32
glanier9 0:a91a9be54fc2 33 void callback3(void const *argument)
glanier9 0:a91a9be54fc2 34 {
glanier9 0:a91a9be54fc2 35 while(1) {
glanier9 0:a91a9be54fc2 36
glanier9 0:a91a9be54fc2 37 Thread::wait(500);
glanier9 0:a91a9be54fc2 38 }
glanier9 0:a91a9be54fc2 39 }
glanier9 0:a91a9be54fc2 40
glanier9 0:a91a9be54fc2 41 void callback4(void const *argument)
glanier9 0:a91a9be54fc2 42 {
glanier9 0:a91a9be54fc2 43 while(1) {
glanier9 0:a91a9be54fc2 44
glanier9 0:a91a9be54fc2 45 Thread::wait(500);
glanier9 0:a91a9be54fc2 46 }
glanier9 0:a91a9be54fc2 47 }
glanier9 0:a91a9be54fc2 48
glanier9 0:a91a9be54fc2 49 void callback5(void const *argument)
glanier9 0:a91a9be54fc2 50 {
glanier9 0:a91a9be54fc2 51 while(1) {
glanier9 0:a91a9be54fc2 52
glanier9 0:a91a9be54fc2 53 Thread::wait(500);
glanier9 0:a91a9be54fc2 54 }
glanier9 0:a91a9be54fc2 55 }
glanier9 0:a91a9be54fc2 56
glanier9 0:a91a9be54fc2 57 //Main Thread
glanier9 0:a91a9be54fc2 58 int main()
glanier9 0:a91a9be54fc2 59 {
glanier9 0:a91a9be54fc2 60 // Assign Any Pullup Modes (if not done already)
glanier9 0:a91a9be54fc2 61
glanier9 0:a91a9be54fc2 62 // Set Speaker Period
glanier9 0:a91a9be54fc2 63 speaker.period(1.0/800.0); // 1/Hz
glanier9 0:a91a9be54fc2 64
glanier9 0:a91a9be54fc2 65 // uLCD Init
glanier9 0:a91a9be54fc2 66 uLCD.cls();
glanier9 0:a91a9be54fc2 67 uLCD.baudrate(3000000); //jack up baud rate to max
glanier9 0:a91a9be54fc2 68 uLCD.text_height(2);
glanier9 0:a91a9be54fc2 69 uLCD.text_width(2);
glanier9 0:a91a9be54fc2 70 uLCD.color(RED);
glanier9 0:a91a9be54fc2 71 uLCD.locate(2,1);
glanier9 0:a91a9be54fc2 72 uLCD.printf("Text");
glanier9 0:a91a9be54fc2 73
glanier9 0:a91a9be54fc2 74 // Start other Threads
glanier9 0:a91a9be54fc2 75 Thread thread2(callback2);
glanier9 0:a91a9be54fc2 76 Thread thread3(callabck3);
glanier9 0:a91a9be54fc2 77 Thread thread4(callback4);
glanier9 0:a91a9be54fc2 78 Thread thread5(callback5);
glanier9 0:a91a9be54fc2 79
glanier9 0:a91a9be54fc2 80 // Start timers (if any)
glanier9 0:a91a9be54fc2 81
glanier9 0:a91a9be54fc2 82 //Continue Main Thread (thread1)
glanier9 0:a91a9be54fc2 83 while(1) {
glanier9 0:a91a9be54fc2 84
glanier9 0:a91a9be54fc2 85
glanier9 0:a91a9be54fc2 86 Thread::wait(1000);
glanier9 0:a91a9be54fc2 87 }
glanier9 0:a91a9be54fc2 88 }