/** * Initialisiert den Maussensor */ void mouse_sens_init(void) { MOUSE_Enable(); delay(100); MOUSE_DDR |= MOUSE_SCK_PIN; // SCK auf Output MOUSE_PORT = (uint8_t) (MOUSE_PORT & ~MOUSE_SCK_PIN); // SCK auf 0 delay(10); mouse_sens_write(MOUSE_CONFIG_REG, MOUSE_CFG_RESET); // reset sensor mouse_sens_write(MOUSE_CONFIG_REG, MOUSE_CFG_FORCEAWAKE); // always on }
/** * Uebertraegt ein write-Kommando an den Sensor * \param addr Adresse * \param data Datum */ void mouse_sens_write(uint8_t addr, uint8_t data) { MOUSE_Enable(); mouse_sens_writeByte(addr |= 0x80); // MSB muss 1 sein, Datenblatt S.12 Write Operation mouse_sens_writeByte(data); mouse_sens_wait(); // 100 us Pause }
/** * Schickt ein Lesekommando an den Sensor und liest ein Byte zurueck * \param addr die Adresse * \return das Datum */ uint8_t mouse_sens_read(uint8_t addr) { MOUSE_Enable(); mouse_sens_writeByte(addr); mouse_sens_wait(); // 100 us Pause return mouse_sens_readByte(); }
/*! * Schickt ein Lesekommando an den Sensor * und liest ein Byte zurueck * @param adr die Adresse * @return das Datum */ BK_U8B mouse_sens_read(BK_U8B adr) { MOUSE_Enable(); mouse_sens_writeByte(adr); mouse_sens_wait(); // 100 us Pause return mouse_sens_readByte(); }