um simples flipflop
This commit is contained in:
28
esp32.h
Normal file
28
esp32.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#ifndef ESP32_FLIPFLOP_H
|
||||||
|
#define ESP32_FLIPFLOP_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
// Estrutura do Flip-Flop D
|
||||||
|
typedef struct {
|
||||||
|
bool Q; // Saída Q
|
||||||
|
bool Qn; // Saída Q negada
|
||||||
|
} FlipFlopD;
|
||||||
|
|
||||||
|
// Inicializa o flip-flop
|
||||||
|
void flipflopd_init(FlipFlopD *ff) {
|
||||||
|
ff->Q = false;
|
||||||
|
ff->Qn = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Atualiza o flip-flop na borda de subida do clock
|
||||||
|
void flipflopd_update(FlipFlopD *ff, bool D, bool clk, bool *last_clk) {
|
||||||
|
// Detecta borda de subida
|
||||||
|
if (!(*last_clk) && clk) {
|
||||||
|
ff->Q = D;
|
||||||
|
ff->Qn = !D;
|
||||||
|
}
|
||||||
|
*last_clk = clk;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // ESP32_FLIPFLOP_H
|
Reference in New Issue
Block a user