Zdravím !!
Prosím, mám zajímavý problém, pro mne nepochopitelný. Potřebuji u tlačítka rozlišit krátký a dlouhý stisk.
Co je triviální v několika variacích.
ALE !!!
Jak to, že mi to šlape na UNU ale na ATtiny4313 né. Zbytek velkého programu šlape, ale toto blbé tlačítko mé
Pouze funkce stisku Short. Druhá funkce Long prostě LED nerozsvítí.
Kde je chyba?
ATtiny4313 vs UNO
Re: ATtiny4313 vs UNO
Těžko říct, když nevíme, podle čeho hodnotíš dlouhý a krátký stisk. Pokud podle millis(), tak bych se nejdříve podíval, jestli čítá srávnou rychlostí. Stačí jeden blik LEDkou po 10sec. Na tom se dá poznat i menší odchylka.
Pokud přes interrupt a nějaký timer, může tam byt těch příčin hromada.
Pokud přes interrupt a nějaký timer, může tam byt těch příčin hromada.
Re: ATtiny4313 vs UNO
OK to mě nenapadlo, jdu kouknout na oscilátor.
Re: ATtiny4313 vs UNO
Tak jsem to nastavil a bylo to OK, i PWM kontrola, tak nevím...
Funguje to na UNU, na Mini ale na ATtiny4313 ne.
Funguje to na UNU, na Mini ale na ATtiny4313 ne.
Kód: Vybrat vše
int LED1 = 4;
int LED2 = 3;
int button = 2;
boolean LED1State = false;
boolean LED2State = false;
long buttonTimer = 0;
long longPressTime = 2000;
boolean buttonActive = false;
boolean longPressActive = false;
void setup() {
pinMode(LED1, OUTPUT); // LED kratky stisk
pinMode(LED2, OUTPUT); // LED dlouhy stisk
pinMode(button, INPUT);
}
void loop() {
if (digitalRead(button) == HIGH) {
if (buttonActive == false) {
buttonActive = true;
buttonTimer = millis();
}
if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) {
longPressActive = true;
// LED1State = !LED1State;
// digitalWrite(LED1, LED1State);
}
} else {
if (buttonActive == true) {
if (longPressActive == true) {
longPressActive = false;
} else {
LED2State = !LED2State;
digitalWrite(LED2, LED2State);
}
buttonActive = false;
}
} delay(100);
}
Re: ATtiny4313 vs UNO
Tak jsem to dal do extra přípravku a nastavit FUSE mimo IDE
a už to šlape. díky všem.
a už to šlape. díky všem.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů