Hsieh JenYun
/
K22_test1
V1
main.cpp@0:63c69398407f, 2018-12-25 (annotated)
- Committer:
- Tanakacool
- Date:
- Tue Dec 25 05:13:13 2018 +0000
- Revision:
- 0:63c69398407f
k22motorcontroll
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Tanakacool | 0:63c69398407f | 1 | #include "mbed.h" |
Tanakacool | 0:63c69398407f | 2 | I2C i2c(A1, A0);// sda, scl |
Tanakacool | 0:63c69398407f | 3 | |
Tanakacool | 0:63c69398407f | 4 | const int addr8bit = 0x15 << 1; |
Tanakacool | 0:63c69398407f | 5 | //I2C i2c( D14, D15); |
Tanakacool | 0:63c69398407f | 6 | Serial pc(USBTX, USBRX); |
Tanakacool | 0:63c69398407f | 7 | DigitalOut led1(LED1); |
Tanakacool | 0:63c69398407f | 8 | |
Tanakacool | 0:63c69398407f | 9 | |
Tanakacool | 0:63c69398407f | 10 | int main() |
Tanakacool | 0:63c69398407f | 11 | { |
Tanakacool | 0:63c69398407f | 12 | |
Tanakacool | 0:63c69398407f | 13 | |
Tanakacool | 0:63c69398407f | 14 | pc.baud(9600); |
Tanakacool | 0:63c69398407f | 15 | i2c.frequency (10000); |
Tanakacool | 0:63c69398407f | 16 | int address = 0x15 << 1; |
Tanakacool | 0:63c69398407f | 17 | int encoder; |
Tanakacool | 0:63c69398407f | 18 | char speed[10] = "2000"; |
Tanakacool | 0:63c69398407f | 19 | char buffer[3]; |
Tanakacool | 0:63c69398407f | 20 | char enc[6]; |
Tanakacool | 0:63c69398407f | 21 | printf("send\n"); |
Tanakacool | 0:63c69398407f | 22 | int motorOutPut=2000; |
Tanakacool | 0:63c69398407f | 23 | motorOutPut=atoi(speed); |
Tanakacool | 0:63c69398407f | 24 | |
Tanakacool | 0:63c69398407f | 25 | buffer[0]=0x00; |
Tanakacool | 0:63c69398407f | 26 | buffer[1]= motorOutPut>>8; |
Tanakacool | 0:63c69398407f | 27 | buffer[2]=motorOutPut; |
Tanakacool | 0:63c69398407f | 28 | i2c.write(address,buffer,3); |
Tanakacool | 0:63c69398407f | 29 | i2c.stop(); |
Tanakacool | 0:63c69398407f | 30 | // i2c.read(address,enc,6); |
Tanakacool | 0:63c69398407f | 31 | |
Tanakacool | 0:63c69398407f | 32 | |
Tanakacool | 0:63c69398407f | 33 | while (1) { |
Tanakacool | 0:63c69398407f | 34 | //atoi |
Tanakacool | 0:63c69398407f | 35 | /* if (pc.readable()) { |
Tanakacool | 0:63c69398407f | 36 | pc.gets(speed, sizeof(speed)); |
Tanakacool | 0:63c69398407f | 37 | pc.printf("out : %s",speed); |
Tanakacool | 0:63c69398407f | 38 | |
Tanakacool | 0:63c69398407f | 39 | motorOutPut=atoi(speed); |
Tanakacool | 0:63c69398407f | 40 | |
Tanakacool | 0:63c69398407f | 41 | buffer[0]=0x00; |
Tanakacool | 0:63c69398407f | 42 | buffer[1]= motorOutPut>>8; |
Tanakacool | 0:63c69398407f | 43 | buffer[2]=motorOutPut; |
Tanakacool | 0:63c69398407f | 44 | i2c.write(address,buffer,3); |
Tanakacool | 0:63c69398407f | 45 | // i2c.write(addr8bit,buffer,3); |
Tanakacool | 0:63c69398407f | 46 | //i2c.stop(); |
Tanakacool | 0:63c69398407f | 47 | led1 = !led1; |
Tanakacool | 0:63c69398407f | 48 | }*/ |
Tanakacool | 0:63c69398407f | 49 | |
Tanakacool | 0:63c69398407f | 50 | i2c.read( addr8bit, enc, 6); |
Tanakacool | 0:63c69398407f | 51 | encoder=(enc[0]<<24)|(enc[1]<<16)|(enc[2]<<8)|(enc[3]); |
Tanakacool | 0:63c69398407f | 52 | // encoder=enc[0]; |
Tanakacool | 0:63c69398407f | 53 | printf("%d\n", encoder); |
Tanakacool | 0:63c69398407f | 54 | |
Tanakacool | 0:63c69398407f | 55 | led1 = !led1; |
Tanakacool | 0:63c69398407f | 56 | |
Tanakacool | 0:63c69398407f | 57 | wait(1); |
Tanakacool | 0:63c69398407f | 58 | |
Tanakacool | 0:63c69398407f | 59 | } |
Tanakacool | 0:63c69398407f | 60 | } |