attiny und interrupt

ok. vielen dank !

ich habs jetzt mal so probiert:

#include <avr/sleep.h>
#include <avr/power.h>    // Power management

char *Alarm = "0";

void setup() 
{   

  pinMode(0, OUTPUT);
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  PCMSK0 |= (1<<PCINT1); //pin12  is PCINT1
  GIMSK  |= (1<<PCIE0);
  sei();
  sleep(); 
   
}


void loop()
{
 
 if (strcmp(Alarm, "1") == 0)
 {
 LED();
 Alarm = 0;
 }
 
 if (strcmp(Alarm, "2") == 0)
 {

 Alarm = 0;
 }
 
 if (strcmp(Alarm, "3") == 0)
 {
 
 Alarm = 0;
 }
 
}


ISR(PCINT0_vect)
{
if (digitalRead(2) == HIGH)
{
Alarm = "1";
}
else if (digitalRead(3) == HIGH)
{
Alarm = "2";
}
else if (digitalRead(4) == HIGH)
{
Alarm = "3";
}
else
{
Alarm = 0;
sleep(); 
}

}

void LED()
{
digitalWrite(0, HIGH);
delay (1000);
digitalWrite(0, LOW);
delay (1000);
digitalWrite(0, HIGH);
delay (1000);
digitalWrite(0, LOW);
delay (1000);
digitalWrite(0, HIGH);
delay (1000);
digitalWrite(0, LOW);
delay (1000);
}


void sleep()
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
power_all_disable ();
sleep_enable();
sleep_mode();
sleep_cpu();             // µC schläft
sleep_disable();
power_all_enable ();   
             
}

aber geht auch nicht wirklich.......deswegen gehe ich mal davon aus, das ich das immer noch nicht ganz verstanden hab......

hab versucht, das zu berücksichtigen, was du geschrieben hast......

zb abfrage ob "HIGH"-flanke und unterschiedung, von welchem pin.
ein char statt ein int.

was ich auch noch nicht ganz verstehe....
mehrere pins teilen sich ja ein vektor......
wenn jetzt aber einer dieser pins ein interrupt ist und der andere ein output, was hat das dann für auswirkungen auf das programm bzw die interrupts ?