from machine import Pin, Timer
from time import sleep_us
# Inicijalizacija pinova za LED diode
prikaz1_pins = [Pin(i, Pin.OUT) for i in (0, 1, 2, 3)]
prikaz2_pins = [Pin(i, Pin.OUT) for i in (4, 5, 6, 7)]
enable = Pin(8, Pin.OUT) # Prilagodite pin prema vašem mikrokontroleru
taster = Pin(9, Pin.IN, Pin.PULL_UP) # Prilagodite pin prema vašem mikrokontroleru
# Inicijalizacija varijabli
brojac1 = 0
brojac2 = 0
T = 0.2 # Vrijeme kašnjenja
debounce_time = 50 # Vrijeme debounce-a u ms
debounce_timer = Timer() # Timer za debounce
def update_display():
"""Ažuriranje prikaza sa trenutnim brojačem"""
for i in range(4):
prikaz1_pins[i].value((brojac1 >> i) & 1)
prikaz2_pins[i].value((brojac2 >> i) & 1)
def pomocna_funkcija(pin):
"""Funkcija koja se poziva pri prekidu"""
global brojac2
if debounce_timer.elapsed() > debounce_time:
brojac2 = (brojac2 + 1) % 16
debounce_timer.reset()
def main():
global brojac1
enable.value(0)
update_display()
# Postavi prekid na taster
taster.irq(trigger=Pin.IRQ_FALLING, handler=pomocna_funkcija)
# Pokreni debounce timer
debounce_timer.init(period=debounce_time, mode=Timer.PERIODIC, callback=lambda t: None)
while True:
sleep_us(int(T * 1e6))
brojac1 = (brojac1 + 1) % 16
update_display()
if __name__ == "__main__":
main()