#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#define F_CPU 20000000UL

//http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/bit-array.html

int main(void)
{
	DDRA = 0b10000000;
	int S;
	double V;
	int A[94];
	int f;
	int pos;
	unsigned int flag;
	unsigned int i = 0;



	while(1){
		S = PINA & 1<<PA3;
		V = PINA & 1<<PA2;
		double time = 0.02632;
		int index = 0;

		if (V < 1){
			for ( i = 0; i < 94; i++ ){
				A[i] = 0;
			}
			for(i = 0;i<1520;i++){
				V = PINA & 1<<PA2;
				if (V < 1){
					PORTA |= 0b10000000;
      		index = i/16;
      		pos = i%16; 
					flag = 1;   
	    		flag = flag << pos;
	      	A[index] = A[index] | flag; 
					_delay_us(658); 
				}
				else{
					PORTA &= ~(0b10000000);
       		index = i/16;
       		pos = i%16; 
      		flag = 1;   
      		flag = flag << pos;
					flag = ~flag;
      		A[index] = A[index] & flag;
					_delay_us(658);
				}
			}
			_delay_ms(5000);
		}
		
		PORTA &= ~(0b10000000);
		

		if (S < 1){		
			for(i = 0;i<1520;i++){
				index = i/16;
				pos = i%16;
				flag = 1;
				flag = flag << pos;
				flag = ~flag;
				if ( ~(A[index] | flag) == 0 ){
					PORTA |= 0b10000000;
					_delay_us(658);
				}
				else{
					PORTA &= ~(0b10000000);
					_delay_us(658);
				}
			}
		}
		PORTA &= ~(0b10000000);
	}
}
