Esempio n. 1
0
enum user_commands get_command(void)
{
  long key0 = get_key_press( 1<<KEY0 );
	long key1 = get_key_rpt( 1<<KEY1 ) || get_key_press( 1<<KEY1 );
  int ir_cmd = ir_get_cmd();
	
	if ((key0 && state == PLAYING) || ir_cmd == 0x36) {
    return CMD_STOP;
	} else if (key0 || ir_cmd == 0x35) {
    return CMD_START;
	} else if (key1 || ir_cmd == 0x34) {
    return CMD_NEXT;
	}
	
  return -1;
}
Esempio n. 2
0
//*****************************************************************************
// 
uint8_t get_key_long_rpt (uint8_t key_mask)
{
  return get_key_rpt (~key_press^key_mask);
}
Esempio n. 3
0
//*****************************************************************************
// 
uint8_t get_key_long2 (uint8_t key_mask)
{
  return get_key_press (get_key_rpt (key_press^key_mask));
}
Esempio n. 4
0
void pong (void) {
	
ausrichtung = unten;
	
int16_t xcord = 5;
int16_t ycord = 0;
int16_t number = 23;

/* Koordinatensystem */

int16_t radius = 5;

int16_t xmin = 0;
int16_t xmax = 128 ;
int16_t ymin = 0;
int16_t ymax = 64;

int p1points = 10;
int cont = 1;

/* *******************************
 * Deklaration von zwei Kreisen k1 und k2
 * diese sollen wild durch die gegend bouncen
 * bei berührung -> invertierung
********************************/
int16_t k1xcord = 23;
int16_t k1ycord = 42;
int16_t k1xstep = 3;
int16_t k1ystep = 1;
int16_t k1xmaxcord;
int16_t k1xmincord;
int16_t k1ymaxcord;
int16_t k1ymincord;



int16_t r1xcord = 10;
int16_t r1ycord = 27;
int16_t r1widthx = 2;
int16_t r1widthy = 10;
int16_t r1step = 1;


int16_t r1xmaxcord;
int16_t r1xmincord;
int16_t r1ymaxcord;
int16_t r1ymincord;

r1xmaxcord = (r1xcord + r1widthx);
r1xmincord = r1xcord;

while(cont)	{
	
k1xmaxcord = (k1xcord + radius);
k1xmincord = (k1xcord - radius);
k1ymaxcord = (k1ycord + radius);
k1ymincord = (k1ycord - radius);

//STEUERUNG ***********************
	//hoch
		while (get_key_rpt (1 << KEY_MINUS)) {
			if (ymin < r1ymincord) {
			r1ycord = (r1ycord - r1step);
			//lcd_printp_at(3,0, PSTR("+\r"),0);
			 
			}
			r1ymincord = r1ycord;
			r1ymaxcord = r1ymincord + r1widthy;
			
		}
	//runter
		while (get_key_rpt (1 << KEY_PLUS)) {
			if (ymax > r1ymaxcord) {
				r1ycord = (r1ycord + r1step);
				//lcd_printp_at(3,0, PSTR("-\r"),0);
			}
			r1ymaxcord = (r1ycord + r1widthy);
			r1ymincord = r1ymaxcord - r1widthy;
			
		}
		if (debug) {
		lcd_write_number_u_at (3,0, r1ymincord);
		lcd_write_number_u_at (5,0, r1ymaxcord);
		}
		lcd_frect (r1xcord, r1ycord, r1widthx, r1widthy, 1);
// STEUERUNG ENDE ***********************

	
// BALL ABFRAGE **************************	
if (debug) {
lcd_write_number_u_at (7,0,	r1xmaxcord);
lcd_write_number_u_at (10,0, k1xmincord);
lcd_write_number_u_at (13, 0, k1ycord);
}
		if (((r1ymaxcord > k1ycord) && (r1ymincord < k1ycord)) && (r1xmaxcord >= k1xmincord)) {
			k1xstep = -(k1xstep);
		}
		if (xmax <= k1xmaxcord) {
			k1xstep = -(k1xstep);
		}
		if (xmin >= k1xmincord) {
			p1points--;
			if (p1points == 0) {
				cont = 0;
				lcd_printp_at (2, 3,PSTR("VERLOREN!\r\n"),0);
				wait_ms(5000);
				
			}
			k1xcord = 23;
			k1ycord = 42;
			k1xstep = 3;
			k1ystep = 1;
			
		}
		
		if ((k1ymaxcord >= ymax) || (k1ymincord <= ymin)) {
			k1ystep = -(k1ystep);
		}
		
		k1xcord += k1xstep;
		k1ycord += k1ystep;
		
		lcd_fcircle (k1xcord, k1ycord, radius);
		
// BALLABFRAGE ENDE *****************************

//Zeichnen		
		lcd_write_number_u_at (0,0, p1points);
		wait_ms (100);
		lcd_cls ();
		
		
		


	}



	lcd_write_number_u_at(xcord, ycord, number);
}
Esempio n. 5
0
/*--------------------------------------------------------------------------
  FUNC: 8/1/11 - Used to read debounced button held for REPEAT_START amount
	of time.
  PARAMS: A keymask corresponding to the pin for the button you with to poll
  RETURNS: A keymask where any high bits represent a long button press
--------------------------------------------------------------------------*/
unsigned char get_key_long( unsigned char key_mask ) 
{ 
  return get_key_press( get_key_rpt( key_mask )); 
}