示例#1
0
void main(void)
{
	init();

	// for testing
	set_brightness(LED1, 2);
	set_led_pulse(LED2, 1);
	//set_brightness(LED2, 50);
	//set_brightness(LED3, 100);
	uint8_t keyup = 0, keydown = 0;
	while (1)
	{
		keydown = getKeyDown();
		if (keydown)
		{
			if (keydown & _BV(BUTTON1))
				set_brightness(LED3, 100);
			else if (keydown & _BV(BUTTON2))
				set_brightness(LED3, 60);
			else if (keydown & _BV(BUTTON3))
				dim_led(LED3, 90);
			else if (keydown & _BV(BUTTON4))
				dim_led(LED3, 0);
			else if (keydown & _BV(BUTTON5))
				set_brightness(LED3, 0);
		}
		keyup = getKeyUp();
		if (keyup)
		{
			if (keyup & _BV(BUTTON2))
				set_brightness(LED3, 0);
		}
	}
}
示例#2
0
	bool Window::getKeyPressed(key::KeyType key) {
		if (key == key::Any) {
			if (anyKeyPressed_) {
				needToBeSetFalse_.push(&anyKeyPressed_);
				return getKeyDown(jngl::key::Any);
			}
		} else if(keyPressed_[GetKeyCode(key)]) {
			needToBeSetFalse_.push(&keyPressed_[GetKeyCode(key)]);
			return true;
		}
		return false;
	}
示例#3
0
void processTWI( void )
{
	uint8_t b,p1,p2;

	b = usiTwiReceiveByte();

	switch (b) {
	case 0x81: // set slave address
		p1 = usiTwiReceiveByte();
		if(p1 < 128) // Address is 7 bit
		{
			eeprom_update_byte(&b_slave_address, p1);
			usiTwiSlaveInit(eeprom_read_byte(&b_slave_address));
		}
		break;
	case 0x82: // clear led
		led_clear();
		break;
	case 0x83: // set led brightness, p1=led, p2=brightness
		p1 = usiTwiReceiveByte();
		p2 = usiTwiReceiveByte();
		set_led_pulse(p1,0); // Turn off pulsing
		set_brightness(p1,p2);
		break;
	case 0x84: // Set to pulse led, p1=led, p2 = (0 = OFF, 1 = ON)
		set_led_pulse(usiTwiReceiveByte(),usiTwiReceiveByte());
		break;
	case 0x85: // Dim up/down led to specific value, p1=led, p2=value to dim to
		dim_led(usiTwiReceiveByte(),usiTwiReceiveByte());
		break;
	case 0x86: // get firmware revision
		usiTwiTransmitByte(FIRMWARE_REVISION);
		break;
	case 0x90: // get keyUp Event
		usiTwiTransmitByte(getKeyUp());
		break;
	case 0x91: // get KeyDown Event
		usiTwiTransmitByte(getKeyDown());
		break;
	case 0x92: // set keyrepeat
		set_keyrepeat(usiTwiReceiveByte(),usiTwiReceiveByte());
		break;
	case 0xFE: // reset to known state
		led_clear();
		button_init();
		flushTwiBuffers();
		break;
	case 0xFF: // flush the bus
		break;
	default:
		break;
	}
}
示例#4
0
//----------------------------------------------------------------
void Input::getKeyEvent()
{
	// update the key events data based on the previous acquire data
	static int i;
	for (i=0; i<256; i++) {
		if (m_ucKeyBuffer[i] != m_ucKeyPrevBuffer[i]) {
			if (getKeyDown(i)) {
				m_ucKeyEvent[i] = KS_DOWN;
			}
			else {
				m_ucKeyEvent[i] = KS_UP;
			}
		}
		else m_ucKeyEvent[i] = KS_NONE;
	}
}