Qian Yuyang
/
blocky_controller_test
111
main.cpp@3:ffdc85db2044, 2019-04-21 (annotated)
- Committer:
- AlexQian
- Date:
- Sun Apr 21 06:50:40 2019 +0000
- Revision:
- 3:ffdc85db2044
- Parent:
- 2:4704fdd9ef91
111
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AlexQian | 3:ffdc85db2044 | 1 | #define HIGH 1 |
AlexQian | 3:ffdc85db2044 | 2 | #define LOW 0 |
Owen | 0:a51a6e7da590 | 3 | #include "mbed.h" |
AlexQian | 3:ffdc85db2044 | 4 | #include <string> |
AlexQian | 3:ffdc85db2044 | 5 | typedef bool boolean; |
AlexQian | 3:ffdc85db2044 | 6 | typedef std::string String; |
Owen | 0:a51a6e7da590 | 7 | #include "nRF24L01P.h" |
wanzq | 2:4704fdd9ef91 | 8 | |
AlexQian | 3:ffdc85db2044 | 9 | char txdata[32] ; |
AlexQian | 3:ffdc85db2044 | 10 | float LX; |
AlexQian | 3:ffdc85db2044 | 11 | float LY; |
AlexQian | 3:ffdc85db2044 | 12 | float RX; |
AlexQian | 3:ffdc85db2044 | 13 | float RY; |
AlexQian | 3:ffdc85db2044 | 14 | int Yaw; |
AlexQian | 3:ffdc85db2044 | 15 | int Roll; |
AlexQian | 3:ffdc85db2044 | 16 | int Pitch; |
AlexQian | 3:ffdc85db2044 | 17 | int Power; |
AlexQian | 3:ffdc85db2044 | 18 | long CycleCount; |
AlexQian | 3:ffdc85db2044 | 19 | int Yaw_config; |
AlexQian | 3:ffdc85db2044 | 20 | int Pitch_config; |
AlexQian | 3:ffdc85db2044 | 21 | int Roll_config; |
AlexQian | 3:ffdc85db2044 | 22 | char i; |
AlexQian | 3:ffdc85db2044 | 23 | long SendCount; |
Owen | 0:a51a6e7da590 | 24 | |
AlexQian | 3:ffdc85db2044 | 25 | #define NRF24_TRANSFER_SIZE 32 |
AlexQian | 3:ffdc85db2044 | 26 | nRF24L01P nrf24_PB_15(PB_15,PB_14,PB_13,PB_6,PB_5,PB_7); |
AlexQian | 3:ffdc85db2044 | 27 | Serial Serial_1(PA_9,PA_10); |
AlexQian | 3:ffdc85db2044 | 28 | InterruptIn intrPB_0(PB_0); |
AlexQian | 3:ffdc85db2044 | 29 | InterruptIn intrPB_1(PB_1); |
AlexQian | 3:ffdc85db2044 | 30 | InterruptIn intrPB_3(PB_3); |
AlexQian | 3:ffdc85db2044 | 31 | InterruptIn intrPB_4(PB_4); |
AlexQian | 3:ffdc85db2044 | 32 | InterruptIn intrPA_5(PA_5); |
AlexQian | 3:ffdc85db2044 | 33 | InterruptIn intrPB_10(PB_10); |
AlexQian | 3:ffdc85db2044 | 34 | DigitalOut myDigitalOutPA_7(PA_7); |
AlexQian | 3:ffdc85db2044 | 35 | AnalogIn myIOPA_0(PA_0); |
AlexQian | 3:ffdc85db2044 | 36 | AnalogIn myIOPA_1(PA_1); |
AlexQian | 3:ffdc85db2044 | 37 | AnalogIn myIOPA_2(PA_2); |
AlexQian | 3:ffdc85db2044 | 38 | AnalogIn myIOPA_3(PA_3); |
AlexQian | 3:ffdc85db2044 | 39 | Ticker tick742927; |
AlexQian | 3:ffdc85db2044 | 40 | DigitalOut myDigitalOutPA_6(PA_6); |
wanzq | 2:4704fdd9ef91 | 41 | |
AlexQian | 3:ffdc85db2044 | 42 | void intrPB_0_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 43 | Pitch_config = Pitch_config + 1; |
AlexQian | 3:ffdc85db2044 | 44 | } |
Owen | 0:a51a6e7da590 | 45 | |
AlexQian | 3:ffdc85db2044 | 46 | void intrPB_1_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 47 | Pitch_config = Pitch_config - 1; |
AlexQian | 3:ffdc85db2044 | 48 | } |
AlexQian | 3:ffdc85db2044 | 49 | |
AlexQian | 3:ffdc85db2044 | 50 | void intrPB_3_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 51 | Roll_config = Roll_config + 1; |
AlexQian | 3:ffdc85db2044 | 52 | } |
AlexQian | 3:ffdc85db2044 | 53 | |
AlexQian | 3:ffdc85db2044 | 54 | void intrPB_4_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 55 | Roll_config = Roll_config - 1; |
AlexQian | 3:ffdc85db2044 | 56 | } |
AlexQian | 3:ffdc85db2044 | 57 | |
AlexQian | 3:ffdc85db2044 | 58 | void intrPA_5_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 59 | Yaw_config = Yaw_config + 1; |
AlexQian | 3:ffdc85db2044 | 60 | } |
AlexQian | 3:ffdc85db2044 | 61 | |
AlexQian | 3:ffdc85db2044 | 62 | void intrPB_10_interrupt_fun() { |
AlexQian | 3:ffdc85db2044 | 63 | Yaw_config = Yaw_config - 1; |
AlexQian | 3:ffdc85db2044 | 64 | } |
AlexQian | 3:ffdc85db2044 | 65 | |
AlexQian | 3:ffdc85db2044 | 66 | void tick742927_handle() { |
AlexQian | 3:ffdc85db2044 | 67 | SendCount = SendCount + 1; |
AlexQian | 3:ffdc85db2044 | 68 | myDigitalOutPA_7.write((CycleCount % 2 == 0)); |
AlexQian | 3:ffdc85db2044 | 69 | LX = myIOPA_0.read(); |
AlexQian | 3:ffdc85db2044 | 70 | LY = myIOPA_1.read(); |
AlexQian | 3:ffdc85db2044 | 71 | RX = myIOPA_2.read(); |
AlexQian | 3:ffdc85db2044 | 72 | RY = myIOPA_3.read(); |
AlexQian | 3:ffdc85db2044 | 73 | Power = (1 - LY) * 1000 + 1000; |
AlexQian | 3:ffdc85db2044 | 74 | Yaw = (1 - LX) * 1000 + 1000; |
AlexQian | 3:ffdc85db2044 | 75 | Pitch = (1 - RY) * 1000 + 1000; |
AlexQian | 3:ffdc85db2044 | 76 | Roll = (1 - RX) * 1000 + 1000; |
AlexQian | 3:ffdc85db2044 | 77 | txdata[0] = 36; |
AlexQian | 3:ffdc85db2044 | 78 | txdata[1] = 77; |
AlexQian | 3:ffdc85db2044 | 79 | txdata[2] = 60; |
AlexQian | 3:ffdc85db2044 | 80 | txdata[3] = 16; |
AlexQian | 3:ffdc85db2044 | 81 | txdata[4] = 105; |
AlexQian | 3:ffdc85db2044 | 82 | txdata[5] = Roll % 256; |
AlexQian | 3:ffdc85db2044 | 83 | txdata[6] = Roll / 256; |
AlexQian | 3:ffdc85db2044 | 84 | txdata[7] = Pitch % 256; |
AlexQian | 3:ffdc85db2044 | 85 | txdata[8] = Pitch / 256; |
AlexQian | 3:ffdc85db2044 | 86 | txdata[9] = Yaw % 256; |
AlexQian | 3:ffdc85db2044 | 87 | txdata[10] = Yaw / 256; |
AlexQian | 3:ffdc85db2044 | 88 | txdata[11] = Power % 256; |
AlexQian | 3:ffdc85db2044 | 89 | txdata[12] = Power / 256; |
AlexQian | 3:ffdc85db2044 | 90 | txdata[13] = 0; |
AlexQian | 3:ffdc85db2044 | 91 | txdata[14] = 0; |
AlexQian | 3:ffdc85db2044 | 92 | txdata[15] = 0; |
AlexQian | 3:ffdc85db2044 | 93 | txdata[16] = 0; |
AlexQian | 3:ffdc85db2044 | 94 | txdata[17] = 0; |
AlexQian | 3:ffdc85db2044 | 95 | txdata[18] = 0; |
AlexQian | 3:ffdc85db2044 | 96 | nrf24_PB_15.write( NRF24L01P_PIPE_P0, txdata, NRF24_TRANSFER_SIZE); |
Owen | 0:a51a6e7da590 | 97 | } |
wanzq | 2:4704fdd9ef91 | 98 | |
wanzq | 2:4704fdd9ef91 | 99 | |
AlexQian | 3:ffdc85db2044 | 100 | int main() { |
AlexQian | 3:ffdc85db2044 | 101 | nrf24_PB_15.powerUp(); |
AlexQian | 3:ffdc85db2044 | 102 | nrf24_PB_15.setTransferSize( NRF24_TRANSFER_SIZE ); |
AlexQian | 3:ffdc85db2044 | 103 | nrf24_PB_15.setReceiveMode(); |
AlexQian | 3:ffdc85db2044 | 104 | nrf24_PB_15.setRxAddress(1ull); |
AlexQian | 3:ffdc85db2044 | 105 | nrf24_PB_15.setTxAddress(1ull); |
AlexQian | 3:ffdc85db2044 | 106 | nrf24_PB_15.enable(); |
AlexQian | 3:ffdc85db2044 | 107 | |
AlexQian | 3:ffdc85db2044 | 108 | Serial_1.baud(9600); |
AlexQian | 3:ffdc85db2044 | 109 | |
AlexQian | 3:ffdc85db2044 | 110 | intrPB_0.fall(&intrPB_0_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 111 | intrPB_0.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 112 | intrPB_1.fall(&intrPB_1_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 113 | intrPB_1.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 114 | intrPB_3.fall(&intrPB_3_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 115 | intrPB_3.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 116 | intrPB_4.fall(&intrPB_4_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 117 | intrPB_4.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 118 | intrPA_5.fall(&intrPA_5_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 119 | intrPA_5.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 120 | intrPB_10.fall(&intrPB_10_interrupt_fun); |
AlexQian | 3:ffdc85db2044 | 121 | intrPB_10.mode(PullNone); |
AlexQian | 3:ffdc85db2044 | 122 | |
AlexQian | 3:ffdc85db2044 | 123 | tick742927.attach(&tick742927_handle,0.01); |
AlexQian | 3:ffdc85db2044 | 124 | |
AlexQian | 3:ffdc85db2044 | 125 | Roll_config = 0; |
AlexQian | 3:ffdc85db2044 | 126 | Pitch_config = 0; |
AlexQian | 3:ffdc85db2044 | 127 | Yaw_config = 0; |
AlexQian | 3:ffdc85db2044 | 128 | CycleCount = 0; |
AlexQian | 3:ffdc85db2044 | 129 | SendCount = 0; |
AlexQian | 3:ffdc85db2044 | 130 | for (i = 1; i <= 32; i++) { |
AlexQian | 3:ffdc85db2044 | 131 | txdata[(i - 1)] = 0; |
AlexQian | 3:ffdc85db2044 | 132 | } |
AlexQian | 3:ffdc85db2044 | 133 | while (true) { |
AlexQian | 3:ffdc85db2044 | 134 | CycleCount = CycleCount + 1; |
AlexQian | 3:ffdc85db2044 | 135 | myDigitalOutPA_6.write((CycleCount % 2 == 0)); |
AlexQian | 3:ffdc85db2044 | 136 | //for (i = 1; i <= 32; i++) { |
AlexQian | 3:ffdc85db2044 | 137 | //Serial_1.printf("%d ",txdata[(i - 1)]); |
AlexQian | 3:ffdc85db2044 | 138 | //} |
AlexQian | 3:ffdc85db2044 | 139 | //Serial_1.printf("Next\n"); |
AlexQian | 3:ffdc85db2044 | 140 | } |
AlexQian | 3:ffdc85db2044 | 141 | |
AlexQian | 3:ffdc85db2044 | 142 | } |