All pastes #2076066 Raw Edit

Unnamed

public c v1 · immutable
#2076066 ·published 2011-06-07 09:35 UTC
rendered paste body
// Włączenie diody na czas jednej sekundy // po puszczeniu przycisku #include <avr/io.h>                // doste;p do rejestrów#include <avr/interrupt.h>		   // przerwania// flaga stanu programuvolatile uint8_t wcisnieto = 0x00;// licznik wywołań przerwania overflowvolatile uint8_t licznik = 0x00;void odpal_licznik(void){	 TCCR0 |= _BV(CS00) | _BV(CS02); // 4mhz / 1024 / 256 ~ 15.26hz	 TIMSK |= _BV(TOIE0);			 // włączenie przerwania overflow	 TCNT0 = 0;	 TIFR = 0;	 // Zapalenie diody	 PORTC = ~PORTC;	 // włączenie przerwań 	 sei();}int main( void ){	 DDRC |= 0xFF;	 PORTC = 0;	 DDRB = 0x00;	 while(1)	 {		if(wcisnieto != 0x01 && PORTB & 0x01)		{			wcisnieto = 0x01;		}		else if(wcisnieto == 0x01 && !(PORTB & 0x01) && !(TCCR0 & (_BV(CS00))))		{			odpal_licznik();		}	 }}ISR(TIMER0_OVF_vect)zz{	licznik++;		// Minęła sekunda (15.26mhz)	if(licznik % 16 == 0)	{	// Zmiana stanu na przeciwny	PORTC = ~PORTC;	// Wyłączenie przerwania overflow	TIMSK ^= _BV(TOIE0);	// Wyłączenie zegara	TCCR0 ^= _BV(CS00) | _BV(CS02);	wcisnieto = 0x00;	licznik = 0;	}}