111

Dependencies:   mbed nRF24L01P

Committer:
AlexQian
Date:
Sun Apr 21 06:50:40 2019 +0000
Revision:
3:ffdc85db2044
Parent:
2:4704fdd9ef91
111

Who changed what in which revision?

UserRevisionLine numberNew 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 }