Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
teaching
nswi170
web
Commits
b6bf9420
Commit
b6bf9420
authored
Apr 28, 2021
by
Šmelko Adam Mgr.
Browse files
Add recording AS
parent
8381381a
Changes
2
Hide whitespace changes
Inline
Side-by-side
download/smelko/cvicenie5.txt
View file @
b6bf9420
...
...
@@ -39,4 +39,102 @@ void loop() {
writeDigit(4, 3);
delay(5); //ODKOMENTUJ A VYSKUSAJ ZNOVA
}
################################################################
#include "funshield.h"
constexpr int digit_positions = sizeof(digit_muxpos) / sizeof(digit_muxpos[0]);
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_;
};
int mocniny[] { 1, 10, 100, 1000 };
class Display
{
public:
void set(int cislo)
{
cislo_ = cislo;
}
void loop()
{
int cislica = (cislo_ / mocniny[pozicia_]) % 10;
writeDigit(cislica, pozicia_);
pozicia_++;
pozicia_ %= 4;
}
private:
int cislo_;
int pozicia_ = 0;
};
void setup() {
pinMode(latch_pin, OUTPUT);
pinMode(data_pin, OUTPUT);
pinMode(clock_pin, OUTPUT);
}
constexpr int buttons[] = { button1_pin, button2_pin};
ButtonPresser pressers[] { ButtonPresser(button1_pin), ButtonPresser(button2_pin)};
Display d;
int citac = 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 -= 1;
citac = (citac + 10000) % 10000;
d.set(citac);
d.loop();
//delay(10); ODKOMENTUJ A VYSKUSAJ ZNOVA
}
\ No newline at end of file
index.html
View file @
b6bf9420
...
...
@@ -678,7 +678,7 @@ $(document).ready(function(){
<td
class=
"right"
>
28.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/af0de5de-5270-441e-bfb4-59d9f16db224"
>
Recorded lecture
</a>
</td>
</tr>
<tr>
<td
class=
"right"
>
4.5.2021
</td>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment