just test of mbed cli and stlink

Dependencies:   mbed ShiftReg

Committer:
Kiskovce
Date:
Wed Jan 29 09:56:22 2020 +0000
Revision:
0:7d6518934170
first STLINK

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kiskovce 0:7d6518934170 1 #include "mbed.h"
Kiskovce 0:7d6518934170 2 #include "ShiftReg.h"
Kiskovce 0:7d6518934170 3 #include <iostream>
Kiskovce 0:7d6518934170 4 #include <string>
Kiskovce 0:7d6518934170 5
Kiskovce 0:7d6518934170 6 using namespace std;
Kiskovce 0:7d6518934170 7
Kiskovce 0:7d6518934170 8
Kiskovce 0:7d6518934170 9 //------------------------------------
Kiskovce 0:7d6518934170 10 // Hyperterminal configuration
Kiskovce 0:7d6518934170 11 // 9600 bauds, 8-bit data, no parity
Kiskovce 0:7d6518934170 12 //------------------------------------
Kiskovce 0:7d6518934170 13 Serial pc(SERIAL_TX, SERIAL_RX);
Kiskovce 0:7d6518934170 14
Kiskovce 0:7d6518934170 15 DigitalOut myled(LED1);
Kiskovce 0:7d6518934170 16
Kiskovce 0:7d6518934170 17 Ticker seg; //7segment timeloop
Kiskovce 0:7d6518934170 18
Kiskovce 0:7d6518934170 19 int cycle; //7segment timeloop global variable
Kiskovce 0:7d6518934170 20 int segment [] = {0b00000011,0b10011111,0b00100101,0b00001101,0b10011001,0b01001001,0b01000001,0b00011111,0b00000001,0b00011001,0b11111111}; //7segment coding
Kiskovce 0:7d6518934170 21
Kiskovce 0:7d6518934170 22 ShiftReg HC595(PA_9, PB_5, PA_8); //shiftreger pinout
Kiskovce 0:7d6518934170 23 int poz4; //char for etch 7 segment
Kiskovce 0:7d6518934170 24 int poz3;
Kiskovce 0:7d6518934170 25 int poz2;
Kiskovce 0:7d6518934170 26 int poz1;
Kiskovce 0:7d6518934170 27 int value = 0;
Kiskovce 0:7d6518934170 28 char u;
Kiskovce 0:7d6518934170 29 string sentence;
Kiskovce 0:7d6518934170 30
Kiskovce 0:7d6518934170 31 PwmOut buzzer(PA_5);
Kiskovce 0:7d6518934170 32
Kiskovce 0:7d6518934170 33 void transformer () // int to 4x7
Kiskovce 0:7d6518934170 34 {
Kiskovce 0:7d6518934170 35 poz4 = value / 1000;
Kiskovce 0:7d6518934170 36 poz3 = (value - (poz4 * 1000))/100;
Kiskovce 0:7d6518934170 37 poz2 = (value - (poz4 * 1000) - (poz3 * 100))/10;
Kiskovce 0:7d6518934170 38 poz1 = (value - (poz4 * 1000) - (poz3 * 100) - (poz2 * 10))%10;
Kiskovce 0:7d6518934170 39 }
Kiskovce 0:7d6518934170 40
Kiskovce 0:7d6518934170 41 void interr() //Shift register update for each 7segment
Kiskovce 0:7d6518934170 42 {
Kiskovce 0:7d6518934170 43 transformer(); //update
Kiskovce 0:7d6518934170 44 cycle++;
Kiskovce 0:7d6518934170 45 if (cycle == 1) {
Kiskovce 0:7d6518934170 46 HC595.ShiftByte(segment[poz4], ShiftReg::LSBFirst); //segment (Prvy v poradi)
Kiskovce 0:7d6518934170 47 HC595.ShiftByte(0b00000001, ShiftReg::MSBFirst); //Pozicia (druhy v poradi)
Kiskovce 0:7d6518934170 48 HC595.Latch();
Kiskovce 0:7d6518934170 49 }
Kiskovce 0:7d6518934170 50 if (cycle == 2) {
Kiskovce 0:7d6518934170 51 HC595.ShiftByte(segment[poz3] - 1, ShiftReg::LSBFirst); //segment (Prvy v poradi)
Kiskovce 0:7d6518934170 52 HC595.ShiftByte(0b00000010, ShiftReg::MSBFirst); //Pozicia (druhy v poradi)
Kiskovce 0:7d6518934170 53 HC595.Latch();
Kiskovce 0:7d6518934170 54 }
Kiskovce 0:7d6518934170 55 if (cycle == 3) {
Kiskovce 0:7d6518934170 56 HC595.ShiftByte(segment[poz2], ShiftReg::LSBFirst); //segment (Prvy v poradi)
Kiskovce 0:7d6518934170 57 HC595.ShiftByte(0b00000100, ShiftReg::MSBFirst); //Pozicia (druhy v poradi)
Kiskovce 0:7d6518934170 58 HC595.Latch();
Kiskovce 0:7d6518934170 59 }
Kiskovce 0:7d6518934170 60 if (cycle == 4 ) {
Kiskovce 0:7d6518934170 61 HC595.ShiftByte(segment[poz1], ShiftReg::LSBFirst); //segment (Prvy v poradi)
Kiskovce 0:7d6518934170 62 HC595.ShiftByte(0b00001000, ShiftReg::MSBFirst); //Pozicia (druhy v poradi)
Kiskovce 0:7d6518934170 63 HC595.Latch();
Kiskovce 0:7d6518934170 64 }
Kiskovce 0:7d6518934170 65 if (cycle == 5 ) {
Kiskovce 0:7d6518934170 66 cycle = 0;
Kiskovce 0:7d6518934170 67 HC595.ShiftByte(0x00, ShiftReg::MSBFirst);
Kiskovce 0:7d6518934170 68 HC595.Latch();
Kiskovce 0:7d6518934170 69 }
Kiskovce 0:7d6518934170 70 }
Kiskovce 0:7d6518934170 71
Kiskovce 0:7d6518934170 72
Kiskovce 0:7d6518934170 73
Kiskovce 0:7d6518934170 74
Kiskovce 0:7d6518934170 75 int main()
Kiskovce 0:7d6518934170 76 {
Kiskovce 0:7d6518934170 77
Kiskovce 0:7d6518934170 78 buzzer.period_ms(100);
Kiskovce 0:7d6518934170 79 buzzer.pulsewidth_ms(99);
Kiskovce 0:7d6518934170 80 seg.attach_us(&interr, 2000); //
Kiskovce 0:7d6518934170 81 value = 0;
Kiskovce 0:7d6518934170 82 cout << "OK this looks this is firs lin in C++ code :)" << endl;
Kiskovce 0:7d6518934170 83 cin >> sentence ;
Kiskovce 0:7d6518934170 84 cout << sentence << endl;
Kiskovce 0:7d6518934170 85 while(1) {
Kiskovce 0:7d6518934170 86 //cin >> sentence;
Kiskovce 0:7d6518934170 87 char a = cin.get();
Kiskovce 0:7d6518934170 88 cin >> sentence;
Kiskovce 0:7d6518934170 89 if (a == 13) {
Kiskovce 0:7d6518934170 90 cout << sentence;
Kiskovce 0:7d6518934170 91 pc.printf("\n"); }
Kiskovce 0:7d6518934170 92 else if (a == 32){
Kiskovce 0:7d6518934170 93 cout << sentence ;
Kiskovce 0:7d6518934170 94 pc.printf(" "); }
Kiskovce 0:7d6518934170 95 else {
Kiskovce 0:7d6518934170 96 cout << sentence; }
Kiskovce 0:7d6518934170 97 buzzer.write(0.5);
Kiskovce 0:7d6518934170 98 wait(0.2);
Kiskovce 0:7d6518934170 99 buzzer.write(0);
Kiskovce 0:7d6518934170 100
Kiskovce 0:7d6518934170 101 }//end of while (1)
Kiskovce 0:7d6518934170 102
Kiskovce 0:7d6518934170 103 }//end off main
Kiskovce 0:7d6518934170 104
Kiskovce 0:7d6518934170 105
Kiskovce 0:7d6518934170 106