09-03-2021, 21:23
(Ten post był ostatnio modyfikowany: 09-03-2021, 21:36 przez Jarewa0606.)
"Przerwanie trwałoby 1/10 sekundy"
Jak dobrze napisany program to nawet poniżej 10us.... razy nawet 30 to i tak daje 300us.... No ale tu trzeba pomyśleć czy to nie był by sabotaż że nagle 30 przycisków aktywnych...
A moze trochę przesadziłem akurat tego co potrzebujesz, digitalread trwa około 4us jak masz przerwanie PCINT to musisz sprawdzić który pin wiec 8x4= 32us będzie na to by odczytać który pin, a potem daje te 6us na przepisanie flagi to i tak za dużo mimo wszystko w 1ms powinieneś się wyrobić. Wiec to nie jest 1/10s lecz 1/1000 sekundy....
Jak dobrze napisany program to nawet poniżej 10us.... razy nawet 30 to i tak daje 300us.... No ale tu trzeba pomyśleć czy to nie był by sabotaż że nagle 30 przycisków aktywnych...
A moze trochę przesadziłem akurat tego co potrzebujesz, digitalread trwa około 4us jak masz przerwanie PCINT to musisz sprawdzić który pin wiec 8x4= 32us będzie na to by odczytać który pin, a potem daje te 6us na przepisanie flagi to i tak za dużo mimo wszystko w 1ms powinieneś się wyrobić. Wiec to nie jest 1/10s lecz 1/1000 sekundy....
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą.