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.

Stegmotorer.c – Rörelsekontrollern<br />

#include <br />

#include <br />

#include <br />

#include <br />

int Allstep[2][8] = {{0x0F, 0x2D, 0x31, 0x25,0x06, 0x24,0x38, 0x2C},\<br />

{0x0F, 0x0F, 0x31, 0x31,0x06,0x06,0x38, 0x38}}; // Hel och halvsteg<br />

fördefinierade i en matris.<br />

unsigned int step0 = 0;<br />

unsigned int motsatt0 =0;<br />

unsigned int step2 = 0;<br />

unsigned int motsatt2 =0;<br />

int motorDriv(int ut, double steg, int hastighet);//Ställer in hur fort och<br />

långt motorerna ska vrida sig.<br />

int kommando(void); //3-bitars kommunikation om vad roboten ska göra.<br />

int ultraTime = 0;<br />

char ultraMode = 0;<br />

char ultraStart();<br />

unsigned char ultraRead();<br />

void ultraTimerReset();<br />

char ultraRand(char max);<br />

int Run_automatic(void);<br />

void Run_alarm(void);<br />

#define ULTRA_SIGNAL 1<br />

#define ULTRA_RUNNING 2<br />

#define ULTRA_WAITING 3<br />

#define ULTRA_WAITRETURN 4<br />

#define ULTRA_READY 0<br />

ISR(SIG_OUTPUT_COMPARE0){<br />

if (motsatt0 == 0){<br />

PORTB=Allstep[0][step0];<br />

}else{<br />

PORTB=Allstep[0][7-step0];<br />

}<br />

step0++;<br />

if (step0==8)<br />

step0=0;<br />

}<br />

ISR(SIG_OUTPUT_COMPARE2){<br />

if (motsatt2 == 0){<br />

PORTC=Allstep[0][step2];<br />

}else{<br />

PORTC=Allstep[0][7-step2];<br />

}<br />

step2++;

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

Saved successfully!

Ooh no, something went wrong!