Commit df3f7b0b authored by Bednárek David RNDr. Ph.D.'s avatar Bednárek David RNDr. Ph.D.
Browse files

Merge branch 'master' of gitlab.mff.cuni.cz:teaching/nswi170/web

parents d096bbd9 532c1569
#include "funshield.h"
constexpr int digit_positions = 4;
void writeGlyphBitmask( byte glyph, byte pos_bitmask) {
digitalWrite( latch_pin, LOW);
shiftOut( data_pin, clock_pin, MSBFIRST, glyph);
shiftOut( data_pin, clock_pin, MSBFIRST, pos_bitmask);
digitalWrite( latch_pin, HIGH);
}
void writeGlyphR(byte glyph, int pos)
{
writeGlyphBitmask(glyph, digit_muxpos[digit_positions - pos - 1]);
}
void writeGlyphL(byte glyph, int pos)
{
writeGlyphBitmask(glyph, digit_muxpos[pos]);
}
void writeDigit(int n, int pos)
{
writeGlyphR(digits[n], pos);
}
enum LedState {PRESSED, RELEASED};
class ButtonPresser
{
public:
ButtonPresser(int pin) {
pin_ = pin;
}
bool pressedOnce(bool button_pressed)
{
if (button_pressed == false) {
prev_state_ = RELEASED;
return false;
}
if (prev_state_ == PRESSED && button_pressed)
return false;
prev_state_ = PRESSED;
return true;
}
private:
LedState prev_state_ = RELEASED;
int pin_;
};
void setup() {
pinMode(latch_pin, OUTPUT);
pinMode(data_pin, OUTPUT);
pinMode(clock_pin, OUTPUT);
}
constexpr int buttons[] = { button1_pin, button2_pin, button3_pin };
ButtonPresser pressers[] { ButtonPresser(button1_pin), ButtonPresser(button2_pin), ButtonPresser(button3_pin) };
int citac = 0;
int pozicia = 0;
void loop() {
// put your main code here, to run repeatedly:
if ( pressers[0].pressedOnce(!digitalRead(buttons[0])))
citac += 1;
if (pressers[1].pressedOnce(!digitalRead(buttons[1])))
citac += 9;
if (pressers[2].pressedOnce(!digitalRead(buttons[2])))
pozicia +=1;
pozicia %=4;
citac %= 10;
writeDigit(citac, pozicia);
}
......@@ -644,7 +644,7 @@ $(document).ready(function(){
<td class="right">14.4.2021</td>
<td>934 5196 8778</td>
<td><a class="extern" href="https://cesnet.zoom.us/j/93451968778">Join the lab - Šmelko</a></td>
<td>Recorded lab</td>
<td><a class="extern" href="https://web.microsoftstream.com/video/c8f464e7-84fc-4259-b5f3-ce26d18813c7">Recorded lab</a></td>
</tr>
<tr>
<td class="right">20.4.2021</td>
......
......@@ -81,11 +81,16 @@
<tr>
<td>4.</td>
<td>Segmentový displej, sériová linka</td>
<td></td>
<td><!--<a href="http://ulita.ms.mff.cuni.cz/~zavoral/nswi170/ard-53.mp4">4.4</a>
&nbsp;&nbsp;<a href="http://ulita.ms.mff.cuni.cz/~zavoral/nswi170/ard-54.mp4">4.5</a>
&nbsp;&nbsp;Čtení ze sériové linky je pro teď nepovinné, bude se ale hodit pro pozdější úlohy
-->
<td>
<a class="file_link" href="download/smelko/nswi170-lab04-as.pdf">
<img src="pic/pdf-icon.png" alt="PDF File Icon">
<span>lab04</span>
</a>
</td>
<td>
<a href="download/smelko/cvicenie4.txt">
poznámky k 4. cvičeniu
</a>
</td>
</tr>
<tr>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment