04-06-2022, 22:45
Tak powinno być, choć nawet wtedy sprawny palec potrafi wbić 10Hz, a to oznacza po 3h klikania przekroczenie granicy 100k zapisów, oczywiście hipotetycznie. Zapisując za każdym razem w kolejnej komórce można to zwiększyć x100.
Ale Ty nie zapisujesz gdy jest wciśnięty przycisk, tylko gdy na pinie jest stan 0.
Zamień zapis na wydruk Serial i zobacz jaką wartość Ci wydrukuje po paru flegmatycznych wciśnięciach:
Mnie drukuje tak 2-3 tysie. Sprawdź, czy masz tak szybkie palce by zejść poniżej 1000.
Zapis do EEPROM jest bardzo wolny, jak już pisałem, ale to z punktu widzenia działania rdzenia 16MHz, ze 100x na sekundę da radę. Użyj jakieś biblioteki do przycisku, polecam onebutton.
Zwróć uwagę, że w demówkach do EEPROM raczej wszystko jest w setup. Zapis w loop trzeba dobrze przemyśleć.
Ale Ty nie zapisujesz gdy jest wciśnięty przycisk, tylko gdy na pinie jest stan 0.
Zamień zapis na wydruk Serial i zobacz jaką wartość Ci wydrukuje po paru flegmatycznych wciśnięciach:
Kod:
void loop() {
static uint16_t zmienna=0;
ICR1 = amp;
if (digitalRead(A3) == 0) {
amp++;
Serial.println(zmienna++);
// EEPROM.put(0, amp);
}
if (digitalRead(A4) == 0) {
amp--;
Serial.println(zmienna++);
// EEPROM.put(0, amp);
}
// Serial.print("amp Hz = ");
// Serial.println(amp);
//Serial.println(amp/10);
}
Zapis do EEPROM jest bardzo wolny, jak już pisałem, ale to z punktu widzenia działania rdzenia 16MHz, ze 100x na sekundę da radę. Użyj jakieś biblioteki do przycisku, polecam onebutton.
Zwróć uwagę, że w demówkach do EEPROM raczej wszystko jest w setup. Zapis w loop trzeba dobrze przemyśleć.
Miło być decenianym https://buycoffee.to/kaczakat