mbed2_3_b_ii

Dependencies:   mbed

Committer:
Robsonik16
Date:
Fri May 05 19:46:56 2017 +0000
Revision:
0:da2fe761ec44
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Robsonik16 0:da2fe761ec44 1 #include "mbed.h"
Robsonik16 0:da2fe761ec44 2
Robsonik16 0:da2fe761ec44 3 //------------------------------------
Robsonik16 0:da2fe761ec44 4 // Hyperterminal configuration
Robsonik16 0:da2fe761ec44 5 // 9600 bauds, 8-bit data, no parity
Robsonik16 0:da2fe761ec44 6 //------------------------------------
Robsonik16 0:da2fe761ec44 7
Robsonik16 0:da2fe761ec44 8 RawSerial pc(USBTX,USBRX,9600);
Robsonik16 0:da2fe761ec44 9
Robsonik16 0:da2fe761ec44 10 DigitalOut led_green(LED1);
Robsonik16 0:da2fe761ec44 11 DigitalOut led_red(LED2);
Robsonik16 0:da2fe761ec44 12
Robsonik16 0:da2fe761ec44 13
Robsonik16 0:da2fe761ec44 14
Robsonik16 0:da2fe761ec44 15 Timeout LedTimeout;
Robsonik16 0:da2fe761ec44 16 Ticker Sender;
Robsonik16 0:da2fe761ec44 17
Robsonik16 0:da2fe761ec44 18 void LedOff()
Robsonik16 0:da2fe761ec44 19 {
Robsonik16 0:da2fe761ec44 20 led_red=0;
Robsonik16 0:da2fe761ec44 21 }
Robsonik16 0:da2fe761ec44 22
Robsonik16 0:da2fe761ec44 23 int my_puts(char tab[],int size)
Robsonik16 0:da2fe761ec44 24 {
Robsonik16 0:da2fe761ec44 25 //retutn 0 if string is valid
Robsonik16 0:da2fe761ec44 26 bool StringIsValid=false;
Robsonik16 0:da2fe761ec44 27 for( int index=0; index<size; index++) {
Robsonik16 0:da2fe761ec44 28 if (tab[index]==NULL) {
Robsonik16 0:da2fe761ec44 29 StringIsValid = true;
Robsonik16 0:da2fe761ec44 30 break;
Robsonik16 0:da2fe761ec44 31 }
Robsonik16 0:da2fe761ec44 32 }
Robsonik16 0:da2fe761ec44 33 if(StringIsValid == false) {
Robsonik16 0:da2fe761ec44 34 LedTimeout.attach(&LedOff, 0.5);
Robsonik16 0:da2fe761ec44 35 led_red=1;
Robsonik16 0:da2fe761ec44 36 return(1);
Robsonik16 0:da2fe761ec44 37 }
Robsonik16 0:da2fe761ec44 38
Robsonik16 0:da2fe761ec44 39 for( int index=0; index<size; index++) {
Robsonik16 0:da2fe761ec44 40 if (tab[index]==NULL) {
Robsonik16 0:da2fe761ec44 41 pc.putc('\r');
Robsonik16 0:da2fe761ec44 42 while(!pc.writeable());
Robsonik16 0:da2fe761ec44 43 pc.putc('\n');
Robsonik16 0:da2fe761ec44 44 return(0);
Robsonik16 0:da2fe761ec44 45 }
Robsonik16 0:da2fe761ec44 46 while(!pc.writeable());
Robsonik16 0:da2fe761ec44 47 pc.putc(tab[index]);
Robsonik16 0:da2fe761ec44 48 }
Robsonik16 0:da2fe761ec44 49 return(0);
Robsonik16 0:da2fe761ec44 50 }
Robsonik16 0:da2fe761ec44 51
Robsonik16 0:da2fe761ec44 52 void hardbeatSend()
Robsonik16 0:da2fe761ec44 53 {
Robsonik16 0:da2fe761ec44 54 static int count=0;
Robsonik16 0:da2fe761ec44 55 char tekst[25];
Robsonik16 0:da2fe761ec44 56 sprintf(tekst,"hardbeat number: %d \r\n", count );
Robsonik16 0:da2fe761ec44 57 //pc.printf("This program runs since %d seconds.\r\n", i);
Robsonik16 0:da2fe761ec44 58 my_puts(tekst,22);
Robsonik16 0:da2fe761ec44 59 count++;
Robsonik16 0:da2fe761ec44 60 }
Robsonik16 0:da2fe761ec44 61
Robsonik16 0:da2fe761ec44 62 char my_gets(char str[],int size)
Robsonik16 0:da2fe761ec44 63 {
Robsonik16 0:da2fe761ec44 64 if (!pc.readable())return (NULL);
Robsonik16 0:da2fe761ec44 65 char c;
Robsonik16 0:da2fe761ec44 66 for(int index=0; index <size; index++) {
Robsonik16 0:da2fe761ec44 67 c=pc.getc();
Robsonik16 0:da2fe761ec44 68 pc.putc(c);
Robsonik16 0:da2fe761ec44 69 if ((c=='\r')||(c=='\n')) {
Robsonik16 0:da2fe761ec44 70 pc.putc('\r');
Robsonik16 0:da2fe761ec44 71 pc.putc('\n');
Robsonik16 0:da2fe761ec44 72 str[index]=NULL;
Robsonik16 0:da2fe761ec44 73 return (1);
Robsonik16 0:da2fe761ec44 74 }
Robsonik16 0:da2fe761ec44 75 str[index]=c;
Robsonik16 0:da2fe761ec44 76 }
Robsonik16 0:da2fe761ec44 77 LedTimeout.attach(&LedOff, 5);
Robsonik16 0:da2fe761ec44 78 led_red=1;
Robsonik16 0:da2fe761ec44 79 return (1);
Robsonik16 0:da2fe761ec44 80 }
Robsonik16 0:da2fe761ec44 81
Robsonik16 0:da2fe761ec44 82 int main()
Robsonik16 0:da2fe761ec44 83 {
Robsonik16 0:da2fe761ec44 84
Robsonik16 0:da2fe761ec44 85
Robsonik16 0:da2fe761ec44 86 bool flag=false;
Robsonik16 0:da2fe761ec44 87
Robsonik16 0:da2fe761ec44 88 const char tekstSize = 7;
Robsonik16 0:da2fe761ec44 89 char tekst[tekstSize];
Robsonik16 0:da2fe761ec44 90 //my_puts("[2J",5);//clear console
Robsonik16 0:da2fe761ec44 91 //pc.putc('[2J');
Robsonik16 0:da2fe761ec44 92 pc.putc(27);
Robsonik16 0:da2fe761ec44 93 char init[] = "system start\r\n";
Robsonik16 0:da2fe761ec44 94 my_puts(init,tekstSize);
Robsonik16 0:da2fe761ec44 95 Sender.attach(&hardbeatSend,1);
Robsonik16 0:da2fe761ec44 96
Robsonik16 0:da2fe761ec44 97
Robsonik16 0:da2fe761ec44 98
Robsonik16 0:da2fe761ec44 99 while(1) {
Robsonik16 0:da2fe761ec44 100
Robsonik16 0:da2fe761ec44 101
Robsonik16 0:da2fe761ec44 102
Robsonik16 0:da2fe761ec44 103 if (my_gets(tekst,tekstSize)!=NULL) {
Robsonik16 0:da2fe761ec44 104
Robsonik16 0:da2fe761ec44 105 my_puts(tekst,tekstSize);
Robsonik16 0:da2fe761ec44 106 if(strcmp(tekst,"on"))flag = true;
Robsonik16 0:da2fe761ec44 107 if(strcmp(tekst,"off"))flag = false;
Robsonik16 0:da2fe761ec44 108 if(strcmp(tekst,"toggle"))flag = !flag;
Robsonik16 0:da2fe761ec44 109 led_green =flag;
Robsonik16 0:da2fe761ec44 110 }
Robsonik16 0:da2fe761ec44 111
Robsonik16 0:da2fe761ec44 112 }
Robsonik16 0:da2fe761ec44 113 }
Robsonik16 0:da2fe761ec44 114
Robsonik16 0:da2fe761ec44 115