Laby2.c
// Jos sarake on alle 5, niin -
COLLOW = ~(mask << col);
//
käytetään PORTA:ta sarakkeiden ohjaamiseen
else
// Jos sarake on yli 5, niin -
COLHIGH = ~(mask << (col - 5)); // käytetään
PORTB:tä ohjaamiseen
}
}
/************************************************************************/
/* Funktio, joka näyttää virhepisteet näytöllä
*/
/************************************************************************/
void dspScore(void)
{
unsigned char i;
for(i=0; i<points;i++)
// Lähdetään rullaamaan pistemäärää -
{
// näytölle.
if(i<69)
// Jos kyseinen piste
löytyy vielä näytöltä...
{
setLed(i/10,i%10);
// Lasketaan riville ja
sarakkeelle arvo virhepisteistä ja -
beep();
// piipataan
_delay_ms(100);
// Sopiva rullausviive.
}
else
// Jos nykyinen piste ei
ole enään näytöllä...
{
ROWS &= 0x00;
// Sammutetaan ledit
COLHIGH |= 0xFF;
COLLOW |= 0x1F;
_delay_ms(20);
// Odotetaan lyhyt hetki.
setLed(6,9);
// Sytytetään viimeinen ledi ja
piipataan -
beep();
// ja odotellaan
lyhyempi viive, jotta rullauksen
_delay_ms(80);
// tahti (ääni) ei muuttuisi
paljoa.
}
}
}
/************************************************************************/
/* Funktio, joka soittaa piezo summeria
*/
/************************************************************************/
void beep(void)
{
PORTD |= PIEZO;
// Piezo päälle.
_delay_ms(8);
// Lyhyt viive, jotta ehditään piipata.
PORTD &= ~PIEZO;
// Piezo pois.
}
/************************************************************************/
/* Funktio, joka aloittaa uuden pelin efektin kanssa
*/
/************************************************************************/
void startNewGame(void)
{
Sivu 5