ryosuke yumoto
/
ADNS3080_HelloWorld
I don't finish configuring this program.
Diff: ADNS3080.cpp
- Revision:
- 0:9beaad87014d
- Child:
- 1:46abb3b9347d
diff -r 000000000000 -r 9beaad87014d ADNS3080.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ADNS3080.cpp Thu May 08 12:59:25 2014 +0000 @@ -0,0 +1,78 @@ +#include "ADNS3080.h" + +ADNS3080::ADNS3080(PinName mosi, + PinName miso, + PinName sck, + PinName cs) : spi_(mosi, miso, sck), nCS_(cs){ + + spi_.frequency(2000000); + spi_.format(8, 3); + + nCS_=1; + + wait_us(500); + +} + +int ADNS3080::getProdID(void) { + + return ReadRegister(ADNS3080_PRODUCT_ID); + +} + +int ADNS3080::getRevID(void) { + + return ReadRegister(ADNS3080_REVISION_ID); + +} + +int ADNS3080::getMotion(void) { + + return ReadRegister(ADNS3080_MOTION); + +} + +signed char ADNS3080::getDelta_X(void) { + + return ReadRegister(ADNS3080_DELTA_X); + +} + +signed char ADNS3080::getDelta_Y(void) { + + return ReadRegister(ADNS3080_DELTA_Y); + +} + +int ADNS3080::getInverProdID(void) { + + return ReadRegister(ADNS3080_INVERSE_PRODUCT_ID); + +} + +int ADNS3080::ReadRegister(int address) { + + int tx = (ADNS3080_SPI_READ | address); + int rx = 0; + + nCS_=0; + + spi_.write(tx); + wait_us(50); + rx = spi_.write(0x00); + nCS_ = 1; + + return rx; +} + +void ADNS3080::WriteRegister(int address, char data) { + + int tx = ( ADNS3080_SPI_WRITE | address); + + nCS_=0; + spi_.write(tx); + spi_.write(data); + + nCS_=1; + +} \ No newline at end of file