Beispiel #1
0
int main(void)
{
	int8_t x, y, *p;
	uint8_t i;

	// set for 16 MHz clock
	CPU_PRESCALE(0);
	LED_CONFIG;
	LED_OFF;

	// Initialize the USB, and then wait for the host to set configuration.
	// If the Teensy is powered without a PC connected to the USB port,
	// this will wait forever.
	usb_init();
	while (!usb_configured()) /* wait */ ;

	// Wait an extra second for the PC's operating system to load drivers
	// and do whatever it does to actually be ready for input
	_delay_ms(1000);

	while (1) {
		// This sequence creates a left click
		usb_mouse_buttons(1, 0, 0);
		_delay_ms(10);
		usb_mouse_buttons(0, 0, 0);
	}
}
void move_mouse(void) {

    /* don't move the mouse unless we already took 2 readings */
    if (!initalized) {
        initalized = 1;
    } else {
        // ignore least significant bit, as it's probably noise
        currentX = currentX >> 1; 
        currentY = currentY >> 1;

        deltaX = previousX - currentX;
        deltaY = previousY - currentY;
    
        if (((deltaX < THRESHOLD) &&  (deltaX > -THRESHOLD))
            && (deltaY < THRESHOLD && (deltaY > -THRESHOLD))) {
        
#ifdef DEBUG
            if (deltaX != 0 || deltaY != 0) {
              print("x="); phex(deltaX); print("\t");
              print("y="); phex(deltaY); print("\n");
            }
#endif
            usb_mouse_move(deltaX, deltaY, 0);
            currButtonState = PIND & 0x01;  // Care about D0 only
            // button pressed
            if (!currButtonState) {
                usb_mouse_buttons(1, 0, 0);
            } else { // released
                usb_mouse_buttons(0, 0, 0);
            }
        }
    }
            
    previousX = currentX;
    previousY = currentY;
}