Skip to content

Commit 2bed5ad

Browse files
committed
Blog Update
incremental encoder disclaimer and YouTube Embed
1 parent 6910774 commit 2bed5ad

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

Blog/Baremetal/incremental_encoder.md

+17-12
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,10 @@ OCR2A = encoder.position * 255 / encoder.stepPerRevolution;
265265
266266
### Librería
267267
268-
rotaryEncoder.hpp
268+
Se demuestra en base a la explicación anterior la librería resultante. El código es iterado y optimizado para su producción en el [repositorio de Github](https://github.com/jackestar/Baremetal/tree/main/RotaryEncoder/C) esta actualizado y revisado por lo que difiere de la version a continuación.
269+
270+
*rotaryEncoder.hpp*
269271
```cpp
270-
// Rotary Relative Encoder
271272
272273
#ifndef _ROTARY_ENCODER_
273274
@@ -294,7 +295,7 @@ class RotaryEncoder
294295
volatile uint8_t *pinBPort;
295296
uint8_t pinBBit;
296297
uint8_t stepPerRevolution;
297-
uint8_t position; // 8bit resolution
298+
uint8_t position;
298299
299300
RotaryEncoder(volatile uint8_t *pinAPort, uint8_t pinABit, volatile uint8_t *pinBPort, uint8_t pinBBit, uint8_t stepPerRevolution);
300301
void read();
@@ -310,14 +311,12 @@ class RotaryEncoder
310311
#endif
311312
```
312313
313-
rotaryEncoder.cpp
314+
*rotaryEncoder.cpp*
314315
```cpp
315316
#include "rotaryEncoder.hpp"
316317
317318
RotaryEncoder::RotaryEncoder(volatile uint8_t *pinAPort, uint8_t pinABit, volatile uint8_t *pinBPort, uint8_t pinBBit, uint8_t stepPerRevolution)
318319
: pinAPort(pinAPort), pinABit(pinABit), pinBPort(pinBPort), pinBBit(pinBBit), stepPerRevolution(stepPerRevolution), step(0), position(0), direction(ENCODER_STOPPED) {
319-
// if (pinAPort == pinBPort && pinABit == pinBBit)
320-
// static_assert(true, "A signal and B signal cannot be the same");
321320
}
322321
323322
inline void RotaryEncoder::positionInc() {
@@ -430,19 +429,17 @@ void RotaryEncoder::reset() {
430429
431430
int main(void)
432431
{
432+
// Entradas
433433
DDRD &= ~(1 << DDD5); // A (Pin 5)
434434
DDRD &= ~(1 << DDD6); // B (Pin 6)
435435
DDRD &= ~(1 << DDD7); // Swh (Pin 7)
436436
437-
// 13 as output to show direction
438-
// 12 as output toggle button
439-
// 11 as output to show errors
437+
// Salidas
440438
DDRB |= (1 << DDB5); // Dir (Pin 13)
441439
DDRB |= (1 << DDB4); // Tgl (Pin 12)
442440
DDRB |= (1 << DDB3); // DIM (Pin 11)
443441
444-
// no-inverter mode
445-
// Fix frequency PWM
442+
// No inversor de frecuencia fija
446443
TCCR2A = 0 | (1 << COM2A1) | (1 << WGM21) | (1 << WGM20);
447444
448445
// No prescaler
@@ -478,4 +475,12 @@ int main(void)
478475
479476
```
480477
481-
YouTube Demo: [Rotary Encoder Library - example_rotary_encoder.cc [Test]](https://youtu.be/ZgM7oFhrcaU)
478+
### Video de Demostración
479+
480+
<hr/>
481+
482+
<div align="center">
483+
484+
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZgM7oFhrcaU?si=5afGIDUQ3yD4WHAB" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
485+
486+
</div>

0 commit comments

Comments
 (0)