08-08-2018, 16:07
Oczywiście szukaj gotowca, na świecie jest kilkaset milionów programistów, może akurat znajdziesz dokładnie taki program jak chcesz, broń bosze nie próbuj się czegoś nauczyć. Po wpisaniu w google "arduino external interrupt return" z pierwszych dwóch trafień można zrobić taki przykład:
Funkcje działają blokując pętlę główną aż do wciśnięcia przycisku na pinie 2.
Kod:
const byte ledPin = 13;
const byte interruptPin = 2;
volatile byte state = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
led100();
led200();
led500();
}
void blink() {//funkcja użyta w przerwaniu
state = HIGH;
}
//jakies funkcje do testu
void led100()
{
while(1)//petla nieskonczona
{
if(state)
{
state=0;
return;
}
digitalWrite(ledPin,!digitalRead(ledPin));
delay(100);
}
}
void led200()
{
while(1)//petla nieskonczona
{
if(state)
{
state=0;
return;
}
digitalWrite(ledPin,!digitalRead(ledPin));
delay(200);
}
}
void led500()
{
while(1)//petla nieskonczona
{
if(state)
{
state=0;
return;
}
digitalWrite(ledPin,!digitalRead(ledPin));
delay(500);
}
}
Miło być decenianym https://buycoffee.to/kaczakat