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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C:\Documents and Settings\mazda\My Documents\Stegmotor16\keyboard.c<br />

#include "Stegmotor.h"<br />

#include "keyboard.h" //Drivrutinerna för tangentbordet<br />

int knapp;<br />

double vinkel=0;<br />

int j=0;<br />

extern int knapptryck(void){<br />

knapp = -1; //retunderar -1 om ingen tangent är nedtryckt<br />

PORTA=0x5F; //Kolumn 1 aktiverad<br />

_delay_ms(5);//Kort delay för att det ska hinna att komma spänning raden. Utan dela<br />

y fungerar tangentbordets översta rad konstigt.<br />

if ((PINA&0x7F)==TGB1)//Om nedtryck och där<strong>med</strong> jordad<br />

knapp=1;<br />

else if ((PINA&0x7F)==TGB4)//Om nedtryck och där<strong>med</strong> jordad<br />

knapp=4;<br />

else if ((PINA&0x7F)==TGB7)<br />

knapp=7;<br />

else if ((PINA&0x7F)==TGBstj)<br />

knapp=128;<br />

PORTA=0x3F; //Kolumn 2 aktiverad<br />

_delay_ms(5);<br />

if ((PINA&0x7F)==TGB2)//Om nedtryck och där<strong>med</strong> jordad<br />

knapp=2;<br />

else if ((PINA&0x7F)==TGB5)//Om nedtryck och där<strong>med</strong> jordad<br />

knapp=5;<br />

else if ((PINA&0x7F)==TGB8)<br />

knapp=8;<br />

else if ((PINA&0x7F)==TGB0)<br />

knapp=0;<br />

PORTA=0x6F; //Kolumn 3 aktiverad<br />

_delay_ms(5);<br />

if ((PINA&0x7F)==TGB3)//Om nedtryck och där<strong>med</strong> jordad<br />

knapp=3;<br />

else if ((PINA&0x7F)==TGB6)<br />

knapp=6;<br />

else if ((PINA&0x7F)==TGB9)<br />

knapp=9;<br />

else if ((PINA&0x7F)==TGBfyr)<br />

knapp=64; //fyrkant<br />

return knapp;<br />

}<br />

extern double inmatning(void){<br />

int intryckt = knapptryck();<br />

//int i=0;<br />

double registrering = 0;<br />

int riktning = 1;<br />

int state_before = state; //Kollar om staten byts i interupen.<br />

while(intryckt !=64){ //En evighetsslinga som hela tiden tar emot nya kna<br />

pptryck. Avbryts genom att man trycke på fyrkant.<br />

if (state_before !=state){ //Kollar om staten byts i interupen.<br />

break;<br />

}<br />

intryckt=knapptryck();<br />

Page: 1<br />

if (intryckt !=-1 && intryckt!=64){<br />

}<br />

if(intryckt==128){ //Om man har tryckt på minus.<br />

riktning=-1*riktning;<br />

}else{<br />

registrering = registrering*10;<br />

registrering = registrering + intryckt;<br />

}<br />

while (knapptryck()==intryckt){} //Väntar på knappsläpp<br />

_delay_ms(20); //mot knappstuds.<br />

}<br />

if (riktning>0){

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

Saved successfully!

Ooh no, something went wrong!