Interruptor on-off con Attiny85 ¿Cómo convertir código de arduino a C?

Buenas tardes, estoy viendo un proyecto realizado con Arduino IDE para programar el Attiny85, la idea es que al pulsar la primera vez se encienda la salida, y al pulsar la segunda vez la salida se apague y el uC pasa a sleep:

onoffswitch4.png


El código es el siguiente:
Código:
#include <avr/sleep.h>

int led = 0;
boolean On = 1;
int Power __attribute__ ((section (".noinit")));

void PowerDown () {
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  ADCSRA &= ~(1<<ADEN);       // Turn off ADC to save power
  sleep_enable();
  sleep_cpu();
}
  
void setup() {
  Power = !Power;
  if (!Power) PowerDown();
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, On = !On);  // Toggle the LED
  delay(1000);                  // Wait for a second
}

Este proyecto es interesante pues utiliza el reset y pasa a modo sleep y consume solo 0.5uA.
El funcionamiento es: 1 pulso prende, 1 pulso apaga y sleep, y asi sucesivamente.

Mi pregunta es si se puede convertir este codigo a C para poder utilizarlo desde Atmel Studio, ¿alguna idea?. :unsure:
 
Siempre digo lo nocivo que es buscar algo en especial arduino o ccs

Hay que pensar

Hay que leer el pin donde esta el boton
Si es 1
Contador ++

Si ckntador =1
Prende

Si contador= 2
Apaga
Sleep

Muy facil
Contador ++
 
Atrás
Arriba