Michal Kravcik
/
FirstwithSTlink
just test of mbed cli and stlink
main.cpp@0:7d6518934170, 2020-01-29 (annotated)
- Committer:
- Kiskovce
- Date:
- Wed Jan 29 09:56:22 2020 +0000
- Revision:
- 0:7d6518934170
first STLINK
Who changed what in which revision?
User | Revision | Line number | New 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 |