attiny85 digispark, не выходит из сна
- Войдите на сайт для отправки комментариев
Всем доброго дня! Подскажите пожалуйста что не так сделал.
Имеется диод и две кнопки + и -.
+ включает диод и увеличивет яркость, - уменьшает.
При зажатии + и - диод выключается, плата уходит в сон. После этого больше ничего не срабатывает.
Собственно вот сам скетч:
#include <avr/sleep.h>
#include <avr/power.h>
#define pinlaser 0
#define keyplus 2 // обязательно 2 для включения
#define keyminus 3
int value=0;
void wakeupnow() {
sleep_disable();
}
void sleepnow() {
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode();
sleep_disable();
wakeupnow();
}
void setup() {
pinMode (pinlaser,OUTPUT);
digitalWrite(pinlaser,LOW);
pinMode (keyplus,INPUT);
digitalWrite(keyplus,HIGH);
pinMode (keyminus,INPUT);
digitalWrite(keyminus,HIGH);
attachInterrupt(0, wakeupnow, FALLING);
analogWrite(pinlaser,0);
// sleepnow();
}
void loop() {
if (!digitalRead(keyplus) and digitalRead(keyminus)){ // plus
delay (50);
if (!digitalRead(keyplus) and digitalRead(keyminus)){
if (value<250)
value+=25;
analogWrite(pinlaser,value);
while(!digitalRead(keyplus) and digitalRead(keyminus));
}
if (!digitalRead(keyplus) and !digitalRead(keyminus))
delay (50);
if (!digitalRead(keyplus) and !digitalRead(keyminus)){
analogWrite(pinlaser,0);
sleepnow();
while (!digitalRead(keyplus) and !digitalRead(keyminus));
}
}
if (digitalRead(keyplus) and !digitalRead(keyminus)){ // minus
delay (50);
if (digitalRead(keyplus) and !digitalRead(keyminus)){
if (value>0)
value-=25;
analogWrite(pinlaser,value);
while(digitalRead(keyplus) and !digitalRead(keyminus));
}
if (!digitalRead(keyplus) and !digitalRead(keyminus)){
delay (50);
if (!digitalRead(keyplus) and !digitalRead(keyminus)){
analogWrite(pinlaser,0);
sleepnow();
while (!digitalRead(keyplus) and !digitalRead(keyminus));
}
}
}
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
а из Power_Down и INT0 разве не уровнем надо выходить?
Может быть и так. Мне данный скетч написали. Я сам крайне поверхостно представляю как это все работает. Не затруднит вас помочь и подправить то, что не так написано?
Мне данный скетч написали. Я сам крайне поверхостно представляю как это все работает. Не затруднит вас помочь и подправить то, что не так написано?
К сожалению, затруднит. Обратитесь к автору этого кода. Или в раздел "Ищу исполнителя". В этом разделе помогают тем, кто сам делает, а готовые коды пишут там.