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.
Dependencies: mbed
Revision 0:399c0fbd595c, committed 2018-12-11
- Comitter:
- jjantoine
- Date:
- Tue Dec 11 13:54:23 2018 +0000
- Commit message:
- TestNI
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 399c0fbd595c main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Dec 11 13:54:23 2018 +0000
@@ -0,0 +1,474 @@
+#include "mbed.h"
+
+Serial pc(USBTX, USBRX); // tx, rx
+
+ DigitalIn mybutton(USER_BUTTON);
+
+
+ DigitalOut Porta0_7 (PA_0);
+ DigitalOut Porta0_6 (PA_1);
+ DigitalOut Porta0_5 (PA_4);
+ DigitalOut Porta0_4 (PA_6);
+ DigitalOut Porta0_3 (PA_7);
+ DigitalOut Porta0_2 (PA_8);
+ DigitalOut Porta0_1 (PA_9);
+ DigitalOut Porta0_0 (PA_12);
+
+ DigitalOut Porta1_7 (PB_0);
+ DigitalOut Porta1_6 (PB_1);
+ DigitalOut Porta1_5 (PB_3);
+ DigitalOut Porta1_4 (PB_4);
+ DigitalOut Porta1_3 (PB_5);
+ DigitalOut Porta1_2 (PB_6);
+ DigitalOut Porta1_1 (PB_7);
+ DigitalOut Porta1_0 (PB_10);
+
+ DigitalOut Porta2_7 (PC_0);
+ DigitalOut Porta2_6 (PC_1);
+ DigitalOut Porta2_5 (PC_2);
+ DigitalOut Porta2_4 (PC_3);
+ DigitalOut Porta2_3 (PC_5);
+ DigitalOut Porta2_2 (PC_6);
+ DigitalOut Porta2_1 (PC_7);
+ DigitalOut Porta2_0 (PC_8);
+
+ DigitalOut Porta3_7 (PA_13);
+ DigitalOut Porta3_6 (PA_14);
+ DigitalOut Porta3_5 (PA_15);
+ DigitalOut Porta3_4 (PC_14);
+ DigitalOut Porta3_3 (PC_15);
+ DigitalOut Porta3_2 (PA_11);
+ DigitalOut Porta3_1 (PB_12);
+ DigitalOut Porta3_0 (PC_4);
+
+
+void TGP_SET_GPO_CMD();
+void TGP_SET_GPO_ACK(char*, char*, char*, char*, char*);
+void GPIO_SET(char*,char*,char*,char*,char*,char*,char*,char*);
+int* charbit(char*,char*);
+
+int main()
+{
+ while(1)
+ {
+ TGP_SET_GPO_CMD();
+ }
+
+
+}
+
+
+
+void TGP_SET_GPO_CMD()
+{
+ unsigned int i;
+
+ char UINT32_PacketSize [4];
+ char ENUM_Packet_ID;
+ char UINT16_PacketCounter [2];
+ char UINT32_Timestamp [4];
+ char UINT32_Port0Value [4];
+ char UINT32_Port0Mask [4];
+ char UINT32_Port1Value [4];
+ char UINT32_Port1Mask [4];
+ char UINT32_Port2Value [4];
+ char UINT32_Port2Mask [4];
+ char UINT32_Port3Value [4];
+ char UINT32_Port3Mask [4];
+ char UINT32_CRC [4];
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_PacketSize[i]);
+ }
+
+ pc.scanf("%c",&ENUM_Packet_ID);
+
+ for(i=0; i<2; i++){
+ pc.scanf("%c",&UINT16_PacketCounter[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Timestamp[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port0Value[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port0Mask[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port1Value[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port1Mask[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port2Value[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port2Mask[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port3Value[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_Port3Mask[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.scanf("%c",&UINT32_CRC[i]);
+ }
+
+ TGP_SET_GPO_ACK(UINT32_PacketSize,&ENUM_Packet_ID,UINT16_PacketCounter,UINT32_Timestamp,UINT32_CRC);
+ GPIO_SET(UINT32_Port0Value,UINT32_Port0Mask,UINT32_Port1Value,UINT32_Port1Mask,UINT32_Port2Value,UINT32_Port2Mask,UINT32_Port3Value,UINT32_Port3Mask);
+
+}
+
+void TGP_SET_GPO_ACK(char*A, char*B, char*C, char*D, char*E)
+{
+ char UINT32_PacketSize [4];
+ char ENUM_Packet_ID;
+ char UINT16_PacketCounter [2];
+ char UINT32_Timestamp [4];
+ char UINT32_CRC [4];
+
+ unsigned int i;
+
+ strcpy(UINT32_PacketSize,A);
+ ENUM_Packet_ID = B[0];
+ strcpy(UINT16_PacketCounter,C);
+ strcpy(UINT32_Timestamp,D);
+ strcpy(UINT32_CRC,E);
+
+ for(i=0; i<4; i++){
+ pc.printf("%c",&UINT32_PacketSize[i]);
+ }
+
+ pc.printf("%c",&ENUM_Packet_ID);
+
+ for(i=0; i<2; i++){
+ pc.printf("%c",&UINT16_PacketCounter[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.printf("%c",&UINT32_Timestamp[i]);
+ }
+
+ for(i=0; i<4; i++){
+ pc.printf("%c",&UINT32_CRC[i]);
+ }
+
+}
+
+void GPIO_SET(char*A,char*B,char*C,char*D,char*E,char*F,char*G,char*H)
+{
+ unsigned int i,btts;
+
+ btts=0;
+
+ char UINT32_Port0Value [4];
+ char UINT32_Port0Mask [4];
+ char UINT32_Port1Value [4];
+ char UINT32_Port1Mask [4];
+ char UINT32_Port2Value [4];
+ char UINT32_Port2Mask [4];
+ char UINT32_Port3Value [4];
+ char UINT32_Port3Mask [4];
+
+ int* porta0;
+ int* porta1;
+ int* porta2;
+ int* porta3;
+
+ int bit0[32];
+ int bit1[32];
+ int bit2[32];
+ int bit3[32];
+
+ strcpy(UINT32_Port0Value,A);
+ strcpy(UINT32_Port0Mask,B);
+ strcpy(UINT32_Port1Value,C);
+ strcpy(UINT32_Port1Mask,D);
+ strcpy(UINT32_Port2Value,E);
+ strcpy(UINT32_Port2Mask,F);
+ strcpy(UINT32_Port3Value,G);
+ strcpy(UINT32_Port3Mask,H);
+
+ porta0 = charbit(UINT32_Port0Value,UINT32_Port0Mask);
+
+ for(i=0;i<32;i++)
+ {
+ bit0[i]=porta0[i];
+ }
+
+ porta1 = charbit(UINT32_Port1Value,UINT32_Port1Mask);
+
+ for(i=0;i<32;i++)
+ {
+ bit1[i]=porta1[i];
+ }
+
+ porta2 = charbit(UINT32_Port2Value,UINT32_Port2Mask);
+
+ for(i=0;i<32;i++)
+ {
+ bit2[i]=porta2[i];
+ }
+
+ porta3 = charbit(UINT32_Port3Value,UINT32_Port3Mask);
+
+ for(i=0;i<32;i++)
+ {
+ bit3[i]=porta3[i];
+ }
+
+ while(1)
+ {
+ if(mybutton == 0 & btts ==0)
+ {
+ Porta0_7 = bit0[0];
+ Porta0_6 = bit0[1];
+ Porta0_5 = bit0[2];
+ Porta0_4 = bit0[3];
+ Porta0_3 = bit0[4];
+ Porta0_2 = bit0[5];
+ Porta0_1 = bit0[6];
+ Porta0_0 = bit0[7];
+
+ Porta1_7 = bit1[0];
+ Porta1_6 = bit1[1];
+ Porta1_5 = bit1[2];
+ Porta1_4 = bit1[3];
+ Porta1_3 = bit1[4];
+ Porta1_2 = bit1[5];
+ Porta1_1 = bit1[6];
+ Porta1_0 = bit1[7];
+
+ Porta2_7 = bit2[0];
+ Porta2_6 = bit2[1];
+ Porta2_5 = bit2[2];
+ Porta2_4 = bit2[3];
+ Porta2_3 = bit2[4];
+ Porta2_2 = bit2[5];
+ Porta2_1 = bit2[6];
+ Porta2_0 = bit2[7];
+
+ Porta3_7 = bit3[0];
+ Porta3_6 = bit3[1];
+ Porta3_5 = bit3[2];
+ Porta3_4 = bit3[3];
+ Porta3_3 = bit3[4];
+ Porta3_2 = bit3[5];
+ Porta3_1 = bit3[6];
+ Porta3_0 = bit3[7];
+
+ btts = 1;
+ } else if (mybutton == 0 & btts == 1) {
+
+ Porta0_7 = bit0[8];
+ Porta0_6 = bit0[9];
+ Porta0_5 = bit0[10];
+ Porta0_4 = bit0[11];
+ Porta0_3 = bit0[12];
+ Porta0_2 = bit0[13];
+ Porta0_1 = bit0[14];
+ Porta0_0 = bit0[15];
+
+ Porta1_7 = bit1[8];
+ Porta1_6 = bit1[9];
+ Porta1_5 = bit1[10];
+ Porta1_4 = bit1[11];
+ Porta1_3 = bit1[12];
+ Porta1_2 = bit1[13];
+ Porta1_1 = bit1[14];
+ Porta1_0 = bit1[15];
+
+ Porta2_7 = bit2[8];
+ Porta2_6 = bit2[9];
+ Porta2_5 = bit2[10];
+ Porta2_4 = bit2[11];
+ Porta2_3 = bit2[12];
+ Porta2_2 = bit2[13];
+ Porta2_1 = bit2[14];
+ Porta2_0 = bit2[15];
+
+ Porta3_7 = bit3[8];
+ Porta3_6 = bit3[9];
+ Porta3_5 = bit3[10];
+ Porta3_4 = bit3[11];
+ Porta3_3 = bit3[12];
+ Porta3_2 = bit3[13];
+ Porta3_1 = bit3[14];
+ Porta3_0 = bit3[15];
+
+ btts = 2;
+ } else if (mybutton == 0 & btts == 2) {
+
+ Porta0_7 = bit0[16];
+ Porta0_6 = bit0[17];
+ Porta0_5 = bit0[18];
+ Porta0_4 = bit0[19];
+ Porta0_3 = bit0[20];
+ Porta0_2 = bit0[21];
+ Porta0_1 = bit0[22];
+ Porta0_0 = bit0[23];
+
+ Porta1_7 = bit1[16];
+ Porta1_6 = bit1[17];
+ Porta1_5 = bit1[18];
+ Porta1_4 = bit1[19];
+ Porta1_3 = bit1[20];
+ Porta1_2 = bit1[21];
+ Porta1_1 = bit1[22];
+ Porta1_0 = bit1[23];
+
+ Porta2_7 = bit2[16];
+ Porta2_6 = bit2[17];
+ Porta2_5 = bit2[18];
+ Porta2_4 = bit2[19];
+ Porta2_3 = bit2[20];
+ Porta2_2 = bit2[21];
+ Porta2_1 = bit2[22];
+ Porta2_0 = bit2[23];
+
+ Porta3_7 = bit3[16];
+ Porta3_6 = bit3[17];
+ Porta3_5 = bit3[18];
+ Porta3_4 = bit3[19];
+ Porta3_3 = bit3[20];
+ Porta3_2 = bit3[21];
+ Porta3_1 = bit3[22];
+ Porta3_0 = bit3[23];
+
+ btts = 3;
+ } else if (mybutton == 0 & btts == 3) {
+
+ Porta0_7 = bit0[24];
+ Porta0_6 = bit0[25];
+ Porta0_5 = bit0[26];
+ Porta0_4 = bit0[27];
+ Porta0_3 = bit0[28];
+ Porta0_2 = bit0[29];
+ Porta0_1 = bit0[30];
+ Porta0_0 = bit0[31];
+
+ Porta1_7 = bit1[24];
+ Porta1_6 = bit1[25];
+ Porta1_5 = bit1[26];
+ Porta1_4 = bit1[27];
+ Porta1_3 = bit1[28];
+ Porta1_2 = bit1[29];
+ Porta1_1 = bit1[30];
+ Porta1_0 = bit1[31];
+
+ Porta2_7 = bit2[24];
+ Porta2_6 = bit2[25];
+ Porta2_5 = bit2[26];
+ Porta2_4 = bit2[27];
+ Porta2_3 = bit2[28];
+ Porta2_2 = bit2[29];
+ Porta2_1 = bit2[30];
+ Porta2_0 = bit2[31];
+
+ Porta3_7 = bit3[24];
+ Porta3_6 = bit3[25];
+ Porta3_5 = bit3[26];
+ Porta3_4 = bit3[27];
+ Porta3_3 = bit3[28];
+ Porta3_2 = bit3[29];
+ Porta3_1 = bit3[30];
+ Porta3_0 = bit3[31];
+
+ btts = 4;
+ } else if (mybutton == 0 & btts == 4)
+ {
+ break;
+ }
+ }
+
+}
+
+int* charbit(char*c,char*d)
+{
+ int msb1[32];
+ int msb2[32];
+ int msb3[32];
+ int i;
+ char a[4];
+ char b[4];
+
+ strcpy(a,c);
+ strcpy(b,d);
+
+
+ for (i=0;i<8;i++)
+ {
+ msb1[i] = ( a[0] & 0x80 ) != 0x00;
+ a[0]=a[0]<<1;
+
+ }
+
+ for (i=8;i<16;i++)
+ {
+ msb1[i] = ( a[1] & 0x80 ) != 0x00;
+ a[1]=a[1]<<1;
+
+ }
+
+ for (i=16;i<24;i++)
+ {
+ msb1[i] = ( a[2] & 0x80 ) != 0x00;
+ a[2]=a[2]<<1;
+
+ }
+
+ for (i=24;i<32;i++)
+ {
+ msb1[i] = ( a[3] & 0x80 ) != 0x00;
+ a[3]=a[3]<<1;
+
+ }
+
+ for (i=0;i<8;i++)
+ {
+ msb2[i] = ( b[0] & 0x80 ) != 0x00;
+ b[0]=b[0]<<1;
+
+ }
+
+ for (i=8;i<16;i++)
+ {
+ msb2[i] = ( b[1] & 0x80 ) != 0x00;
+ b[1]=b[1]<<1;
+
+ }
+
+ for (i=16;i<24;i++)
+ {
+ msb2[i] = ( b[2] & 0x80 ) != 0x00;
+ b[2]=b[2]<<1;
+
+ }
+
+ for (i=24;i<32;i++)
+ {
+ msb2[i] = ( b[3] & 0x80 ) != 0x00;
+ b[3]=b[3]<<1;
+
+ }
+
+ for (i=0;i<32;i++)
+ {
+ msb3[i] = msb1[i] & msb2[i];
+ }
+
+ return &msb3[0];
+}
\ No newline at end of file
diff -r 000000000000 -r 399c0fbd595c mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Dec 11 13:54:23 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc \ No newline at end of file