29 lines
585 B
C
29 lines
585 B
C
#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
|