29.08.2013 Views

Autonom robotväckarklocka med trådlös basstation - KTH

Autonom robotväckarklocka med trådlös basstation - KTH

Autonom robotväckarklocka med trådlös basstation - KTH

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

void ultraTimerReset(){<br />

TCNT1H=0;<br />

TCNT1L=0;<br />

}<br />

char ultraRand(char ma x){<br />

return ultraTime%max;<br />

}<br />

/* END OF ULTRASOUD */<br />

int main(void){<br />

DDRB=0xFF;<br />

DDRD=0b10000011; //All output but port 2 and 3<br />

DDRA=0xFF;<br />

DDRC=0xFF;<br />

TCCR0=0x0D; //Konfigurerar timern; CTC-mode, inget händer vid<br />

match och 256 prescaler<br />

TCCR2=0x0F; //Konfigurerar timer2; CTC-mode, inget händer vid<br />

match och 256 prescaler<br />

TIMSK|=0x00;<br />

/* START OF ULTRASOUD */<br />

// Set up timer1 for time measurement<br />

TCCR1A = 0x00; //00000000; No output ports, no force output compare,<br />

TCCR1B = 0x02; //00000010; No noise canselation, trigger on positive<br />

edge, normal mode, clk/8<br />

TIMSK |= 0x1C; //xxx111xx; Output compare A and B, and overflow enable<br />

//Set up timer 1 compare vectors<br />

OCR1AH = 0; //For 20 micro s delay, for output pulse<br />

OCR1AL = 20;<br />

OCR1BH = 0x27; //For 10 ms delay after return<br />

OCR1BL = 0x10;<br />

MCUCR |= 0x0 1;<br />

GICR |= 0x40;<br />

/* END OF ULTRASOUD */<br />

sei(); //Global enable<br />

while(1){<br />

kommando();<br />

}<br />

}<br />

int kommando(void){<br />

int signal = PIND&0x70;<br />

signal= signal / 16;<br />

if (signal == 1){ //Smyg omkring<br />

Run_automatic();<br />

} else if (signal == 2){ //Alarm

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!