Publishing test

Dependencies:   mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem_OldbutworkswithRTOS

Committer:
kanicolaus
Date:
Sat Feb 23 20:24:29 2019 +0000
Revision:
2:b07b1a448161
Parent:
1:5b8e223e983d
Testing "publishing" function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kanicolaus 2:b07b1a448161 1 //Include required libraries (uLCD, mbed, rtos, etc.)
4180_1 1:5b8e223e983d 2 #include "mbed.h"
kanicolaus 2:b07b1a448161 3 #include "rtos.h"
kanicolaus 2:b07b1a448161 4 //#include "uLCD_4DGL.h"
kanicolaus 2:b07b1a448161 5 //#include "wave_player.h"
kanicolaus 2:b07b1a448161 6 //#include "stdio.h"
kanicolaus 2:b07b1a448161 7 //#include "RGBLed.h"
kanicolaus 2:b07b1a448161 8 //#include "SDFileSystem.h"
4180_1 1:5b8e223e983d 9
kanicolaus 2:b07b1a448161 10 //Initialize all objects
kanicolaus 2:b07b1a448161 11 //uLCD_4DGL uLCD(p28,p27,p30); // serial tx, serial rx, reset pin;
kanicolaus 2:b07b1a448161 12 //SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
kanicolaus 2:b07b1a448161 13 //RawSerial blue(p13,p14);
kanicolaus 2:b07b1a448161 14 //RGBLed myRGB(p21, p22, p23);
kanicolaus 2:b07b1a448161 15 DigitalOut led1(LED1);
kanicolaus 2:b07b1a448161 16 DigitalOut led2(LED2);
kanicolaus 2:b07b1a448161 17 DigitalOut led3(LED3);
kanicolaus 2:b07b1a448161 18 DigitalOut led4(LED4);
kanicolaus 2:b07b1a448161 19 //AnalogOut DACout(p18);
kanicolaus 2:b07b1a448161 20 //wave_player waver(&DACout);
4180_1 1:5b8e223e983d 21
kanicolaus 2:b07b1a448161 22 Mutex mut;
kanicolaus 2:b07b1a448161 23
kanicolaus 2:b07b1a448161 24 // Thread 1
kanicolaus 2:b07b1a448161 25 // Bounce a circle around the screen centered randomly every 100ms
kanicolaus 2:b07b1a448161 26 void thread1(void const *args)
kanicolaus 2:b07b1a448161 27 {
kanicolaus 2:b07b1a448161 28 int i;
kanicolaus 2:b07b1a448161 29 //int xLCD, yLCD;
kanicolaus 2:b07b1a448161 30 while(true) { // thread loop
kanicolaus 2:b07b1a448161 31 mut.lock();
kanicolaus 2:b07b1a448161 32 ////uLCD.baudrate(3000000);
kanicolaus 2:b07b1a448161 33 ////uLCD.cls();
kanicolaus 2:b07b1a448161 34 ////uLCD.color(RED);
kanicolaus 2:b07b1a448161 35 ////uLCD.background_color(BLACK);
kanicolaus 2:b07b1a448161 36 ////uLCD.set_font(FONT_7X8);
kanicolaus 2:b07b1a448161 37 //////uLCD.text_mode(TRANSPARENT);
kanicolaus 2:b07b1a448161 38 ////uLCD.text_bold(ON);
kanicolaus 2:b07b1a448161 39 ////uLCD.printf("Count1: %d", i);
kanicolaus 2:b07b1a448161 40 led1 = !led1;
kanicolaus 2:b07b1a448161 41 mut.unlock();
kanicolaus 2:b07b1a448161 42 i++;
kanicolaus 2:b07b1a448161 43
kanicolaus 2:b07b1a448161 44 Thread::wait(1000);
kanicolaus 2:b07b1a448161 45 }
kanicolaus 2:b07b1a448161 46 }
kanicolaus 2:b07b1a448161 47
kanicolaus 2:b07b1a448161 48 // Thread 2
kanicolaus 2:b07b1a448161 49 // prints a counter to the center of the screen
kanicolaus 2:b07b1a448161 50 void thread2(void const *args)
kanicolaus 2:b07b1a448161 51 {
kanicolaus 2:b07b1a448161 52 int k;
kanicolaus 2:b07b1a448161 53 while(true) { // thread loop
kanicolaus 2:b07b1a448161 54 mut.lock();
kanicolaus 2:b07b1a448161 55 ////uLCD.baudrate(3000000);
kanicolaus 2:b07b1a448161 56 ////uLCD.cls();
kanicolaus 2:b07b1a448161 57 ////uLCD.color(BLUE);
kanicolaus 2:b07b1a448161 58 ////uLCD.background_color(BLACK);
kanicolaus 2:b07b1a448161 59 ////uLCD.set_font(FONT_7X8);
kanicolaus 2:b07b1a448161 60 //////uLCD.text_mode(TRANSPARENT);
kanicolaus 2:b07b1a448161 61 ////uLCD.text_bold(ON);
kanicolaus 2:b07b1a448161 62 ////uLCD.printf("Count2: %d", k);
kanicolaus 2:b07b1a448161 63 led2 = !led2;
kanicolaus 2:b07b1a448161 64 mut.unlock();
kanicolaus 2:b07b1a448161 65 k++;
kanicolaus 2:b07b1a448161 66
kanicolaus 2:b07b1a448161 67 Thread::wait(500);
kanicolaus 2:b07b1a448161 68 }
kanicolaus 2:b07b1a448161 69 }
kanicolaus 2:b07b1a448161 70
kanicolaus 2:b07b1a448161 71 //Thread 3
kanicolaus 2:b07b1a448161 72 //Do a "fancy" lighting effect on the RGB LED #include "ultrasonic.h"
kanicolaus 2:b07b1a448161 73 void thread3(void const *args)
kanicolaus 2:b07b1a448161 74 {
kanicolaus 2:b07b1a448161 75 //mut.lock();
kanicolaus 2:b07b1a448161 76 //FILE *wave_file;
kanicolaus 2:b07b1a448161 77 //printf("\r\n\nHello, wave world!\n\r");
kanicolaus 2:b07b1a448161 78 //Thread::wait(1000);
kanicolaus 2:b07b1a448161 79 //wave_file=fopen("/sd/chirp.wav","r");
kanicolaus 2:b07b1a448161 80 //if(wave_file==NULL) printf("file open error!\n\n\r");
kanicolaus 2:b07b1a448161 81 //waver.play(wave_file);
kanicolaus 2:b07b1a448161 82 //fclose(wave_file);
kanicolaus 2:b07b1a448161 83 //mut.unlock();
kanicolaus 2:b07b1a448161 84 while(true) { // thread loop
kanicolaus 2:b07b1a448161 85 led3 = !led3;
kanicolaus 2:b07b1a448161 86 Thread::wait(1000);
kanicolaus 2:b07b1a448161 87 }
kanicolaus 2:b07b1a448161 88 }
4180_1 1:5b8e223e983d 89
kanicolaus 2:b07b1a448161 90 // Thread 4
kanicolaus 2:b07b1a448161 91 // Reads inputs from the bluetooth module
kanicolaus 2:b07b1a448161 92 //void thread4(void const *args)
kanicolaus 2:b07b1a448161 93 //{
kanicolaus 2:b07b1a448161 94 // while(true) { // thread loop
kanicolaus 2:b07b1a448161 95 // mut.lock();
kanicolaus 2:b07b1a448161 96 // myRGB.write(1.0,0.0,0.0); //red
kanicolaus 2:b07b1a448161 97 // wait(2.0);
kanicolaus 2:b07b1a448161 98 // myRGB.write(0.0,1.0,0.0); //green
kanicolaus 2:b07b1a448161 99 // wait(2.0);
kanicolaus 2:b07b1a448161 100 // myRGB.write(0.0,0.0,1.0); //blue
kanicolaus 2:b07b1a448161 101 // wait(2.0);
kanicolaus 2:b07b1a448161 102 // myRGB.write(1.0,0.2,0.0); //yellow = red + some green
kanicolaus 2:b07b1a448161 103 // wait(2.0);
kanicolaus 2:b07b1a448161 104 // //white with a slow fade to black dimming effect
kanicolaus 2:b07b1a448161 105 // for (float x=1.0; x>=0.0001; x=x*0.99) {
kanicolaus 2:b07b1a448161 106 // myRGB.write(x, x, x);
kanicolaus 2:b07b1a448161 107 // wait(0.005);
kanicolaus 2:b07b1a448161 108 // }
kanicolaus 2:b07b1a448161 109 // mut.unlock();
kanicolaus 2:b07b1a448161 110 // //wait(2.0);
kanicolaus 2:b07b1a448161 111 // Thread::wait(1000);
kanicolaus 2:b07b1a448161 112 // }
kanicolaus 2:b07b1a448161 113 //}
4180_1 1:5b8e223e983d 114
4180_1 1:5b8e223e983d 115 int main()
4180_1 1:5b8e223e983d 116 {
kanicolaus 2:b07b1a448161 117 Thread t1(thread1);
kanicolaus 2:b07b1a448161 118 Thread t2(thread2);
kanicolaus 2:b07b1a448161 119 Thread t3(thread3);
kanicolaus 2:b07b1a448161 120 //Thread t4(thread4);
kanicolaus 2:b07b1a448161 121 //wait(0.1); // wait for uLCD ready
kanicolaus 2:b07b1a448161 122
kanicolaus 2:b07b1a448161 123 while(true) { // main is the next thread
kanicolaus 2:b07b1a448161 124 led4 = !led4;
kanicolaus 2:b07b1a448161 125 Thread::wait(500); // wait 0.5s
kanicolaus 2:b07b1a448161 126 }
4180_1 1:5b8e223e983d 127 }