from machine import Pin, PWM
import time

# Számláló változók
pulse_count = 0
pulse_count1 = 0

# Megszakítás kezelő függvények
def pulse_handler(pin):
    global pulse_count
    pulse_count += 1

def pulse_handler2(pin):
    global pulse_count1
    pulse_count1 += 1

# PWM létrehozása a 14-es lábon (válaszd ki a megfelelő GPIO lábat)
pwm_pin = Pin(14)
pwm = PWM(pwm_pin)
pwm.freq(1000)  # 1 kHz frekvencia
pwm.duty_u16(32768)  # 50%-os kitöltési tényező

# GPIO bemenet inicializálása a 15-ös és 16-os lábon
pulse_pin = Pin(15, Pin.IN, Pin.PULL_DOWN)
pulse_pin.irq(trigger=Pin.IRQ_RISING, handler=pulse_handler)
pulse_pin1 = Pin(16, Pin.IN, Pin.PULL_DOWN)
pulse_pin1.irq(trigger=Pin.IRQ_RISING, handler=pulse_handler2)

# Futás idejének beállítása (például 10 másodperc)
start_time = time.ticks_us()
print('Számolás kezdete')

# Futási ciklus
while pulse_count != 1000:
    time.sleep_us(10)  # Kis várakozási idő a CPU tehermentesítése érdekében

# Eltelt idő kiszámítása
elapsed_time = time.ticks_diff(time.ticks_us(), start_time)
print(f"megvan az 1000 {elapsed_time} us alatt")

# PWM jel leállítása
pwm.deinit()

# Megszakítások letiltása
pulse_pin.irq(handler=None)
pulse_pin1.irq(handler=None)

# Számláló értékének kiíratása
print("PWM impulzusok száma:", pulse_count)
print("Másodlagos impulzusok száma:", pulse_count1)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS