Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:8535eef790f1, 2019-06-17 (annotated)
- Committer:
- adaemon
- Date:
- Mon Jun 17 08:25:54 2019 +0000
- Revision:
- 1:8535eef790f1
- Parent:
- 0:738a25907be7
control servo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adaemon | 0:738a25907be7 | 1 | #include "mbed.h" |
adaemon | 0:738a25907be7 | 2 | #include "PS3.h" |
adaemon | 0:738a25907be7 | 3 | |
adaemon | 0:738a25907be7 | 4 | I2C i2c(PB_9,PB_8); |
adaemon | 0:738a25907be7 | 5 | PS3 ps3(D8,D2); |
adaemon | 0:738a25907be7 | 6 | DigitalOut led(LED1); |
adaemon | 0:738a25907be7 | 7 | Serial pc(USBTX,USBRX); |
adaemon | 0:738a25907be7 | 8 | |
adaemon | 0:738a25907be7 | 9 | void send(char address,char data); |
adaemon | 0:738a25907be7 | 10 | |
adaemon | 0:738a25907be7 | 11 | int main(void){ |
adaemon | 0:738a25907be7 | 12 | i2c.frequency(100000); |
adaemon | 0:738a25907be7 | 13 | int circle; |
adaemon | 1:8535eef790f1 | 14 | int old_circle; |
adaemon | 1:8535eef790f1 | 15 | //int cross; |
adaemon | 1:8535eef790f1 | 16 | int memo = 0; |
adaemon | 0:738a25907be7 | 17 | |
adaemon | 1:8535eef790f1 | 18 | char ninty = 0x01; |
adaemon | 1:8535eef790f1 | 19 | char zero = 0x02; |
adaemon | 1:8535eef790f1 | 20 | char nosignal = 0xff; |
adaemon | 1:8535eef790f1 | 21 | char add = 0x18; |
adaemon | 1:8535eef790f1 | 22 | |
adaemon | 0:738a25907be7 | 23 | while(1){ |
adaemon | 0:738a25907be7 | 24 | circle = ps3.getButtonState(maru); |
adaemon | 0:738a25907be7 | 25 | |
adaemon | 1:8535eef790f1 | 26 | if(circle != old_circle){ |
adaemon | 1:8535eef790f1 | 27 | old_circle = circle; |
adaemon | 1:8535eef790f1 | 28 | if(circle == 1 && memo == 1){ |
adaemon | 1:8535eef790f1 | 29 | send(add,ninty); |
adaemon | 1:8535eef790f1 | 30 | memo = 0; |
adaemon | 1:8535eef790f1 | 31 | }else if(circle == 1 && memo == 0){ |
adaemon | 1:8535eef790f1 | 32 | send(add,zero); |
adaemon | 1:8535eef790f1 | 33 | memo = 1; |
adaemon | 1:8535eef790f1 | 34 | }else{ |
adaemon | 1:8535eef790f1 | 35 | send(add,nosignal); |
adaemon | 1:8535eef790f1 | 36 | } |
adaemon | 1:8535eef790f1 | 37 | }/*else{ |
adaemon | 1:8535eef790f1 | 38 | send(add,nosignal); |
adaemon | 1:8535eef790f1 | 39 | }*/ |
adaemon | 1:8535eef790f1 | 40 | |
adaemon | 1:8535eef790f1 | 41 | |
adaemon | 1:8535eef790f1 | 42 | //cross = ps3.getButtonState(batu); |
adaemon | 1:8535eef790f1 | 43 | |
adaemon | 1:8535eef790f1 | 44 | /*pc.printf("%4d:%4d\n",circle,memo_servo); |
adaemon | 1:8535eef790f1 | 45 | |
adaemon | 1:8535eef790f1 | 46 | if(circle == 1 && memo_servo == 1){ |
adaemon | 0:738a25907be7 | 47 | send(add,ninty); |
adaemon | 1:8535eef790f1 | 48 | memo_servo = 0; |
adaemon | 1:8535eef790f1 | 49 | wait(3); |
adaemon | 1:8535eef790f1 | 50 | |
adaemon | 1:8535eef790f1 | 51 | }else if(circle == 1 && memo_servo == 0){ |
adaemon | 0:738a25907be7 | 52 | send(add,zero); |
adaemon | 1:8535eef790f1 | 53 | memo_servo = 1; |
adaemon | 1:8535eef790f1 | 54 | wait(3); |
adaemon | 0:738a25907be7 | 55 | }else{ |
adaemon | 0:738a25907be7 | 56 | send(add,nosignal); |
adaemon | 1:8535eef790f1 | 57 | }*/ |
adaemon | 1:8535eef790f1 | 58 | } |
adaemon | 0:738a25907be7 | 59 | } |
adaemon | 0:738a25907be7 | 60 | |
adaemon | 0:738a25907be7 | 61 | void send(char address,char data){ |
adaemon | 0:738a25907be7 | 62 | i2c.start(); |
adaemon | 0:738a25907be7 | 63 | i2c.write(address); |
adaemon | 0:738a25907be7 | 64 | i2c.write(data); |
adaemon | 0:738a25907be7 | 65 | i2c.stop(); |
adaemon | 0:738a25907be7 | 66 | } |