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: PCAL955x mbed mbed-rtos AT45
can.cpp
00001 00002 #include <mbed.h> 00003 #include "rtos.h" 00004 #include "can.h" 00005 #include "ext_vars.h" 00006 00007 00008 //-------------хранение полученного сообщения -------------- 00009 // 00010 // [b1 b2 b3 b4] 00011 // ----------------- 00012 // r_mess id[0] -> r_mess_data [ 0 1 2 3] - новое сообщение 00013 // r_mess id[1] -> r_mess_data [ 4 5 6 7] - новое сообщение 00014 // r_mess id[2] -> r_mess_data [ 8 9 10 11] - новое сообщение 00015 // r_mess id[3] -> r_mess_data [12 13 14 15] - новое сообщение 00016 // r_mess id[4] -> r_mess_data [16 17 18 19] - новое сообщение 00017 // r_mess id[5] -> r_mess_data [20 21 22 23] - новое сообщение 00018 // r_mess id[6] -> r_mess_data [24 25 26 27] - новое сообщение 00019 // r_mess id[7] -> r_mess_data [28 29 30 31] - новое сообщение 00020 // r_mess id[8] -> r_mess_data [32 33 34 35] - новое сообщение 00021 // r_mess id[9] -> r_mess_data [36 37 38 39] - новое сообщение 00022 00023 00024 //--------- очередь сообщений на отправку ------------------ 00025 // 00026 // [b1 b2 b3 b4] 00027 // ----------------- 00028 // w_mess id[0] -> w_mess_data [ 0 1 2 3] - новое сообщение 00029 // w_mess id[1] -> w_mess_data [ 4 5 6 7] - новое сообщение 00030 // w_mess id[2] -> w_mess_data [ 8 9 10 11] - новое сообщение 00031 // w_mess id[3] -> w_mess_data [12 13 14 15] - новое сообщение 00032 // w_mess id[4] -> w_mess_data [16 17 18 19] - новое сообщение 00033 // w_mess id[5] -> w_mess_data [20 21 22 23] - новое сообщение 00034 // w_mess id[6] -> w_mess_data [24 25 26 27] - новое сообщение 00035 // w_mess id[7] -> w_mess_data [28 29 30 31] - новое сообщение 00036 // w_mess id[8] -> w_mess_data [32 33 34 35] - новое сообщение 00037 // w_mess id[9] -> w_mess_data [36 37 38 39] - новое сообщение 00038 00039 00040 00041 00042 // помещаем в очередь полученное сообщение 00043 int can_save_rd(int id, char b1, char b2, char b3, char b4) 00044 { 00045 int res = 0 ; 00046 for(int i=0; i<9; i++){ 00047 if( r_mess_id[i]==0 && res==0){ 00048 r_mess_id[i] = id; 00049 r_mess_data[i*3+i+0] = b1; 00050 r_mess_data[i*3+i+1] = b2; 00051 r_mess_data[i*3+i+2] = b3; 00052 r_mess_data[i*3+i+3] = b4; 00053 res = 1; 00054 } 00055 } 00056 return res; 00057 } 00058 00059 00060 // помещаем в очередь сообщения для отправки 00061 int can_save_wr(int id, char b1, char b2, char b3, char b4) 00062 { 00063 int res = 0 ; 00064 for(int i=0; i<9; i++){ 00065 if( w_mess_id[i]==0 && res==0){ 00066 w_mess_id[i] = id; 00067 w_mess_data[i*3+i+0] = b1; 00068 w_mess_data[i*3+i+1] = b2; 00069 w_mess_data[i*3+i+2] = b3; 00070 w_mess_data[i*3+i+3] = b4; 00071 res = 1; 00072 } 00073 } 00074 return res; 00075 } 00076 00077 // выбираем сообщение из очереди для обработки 00078 // и помещаем в раб. переменные 00079 int can_select_rd() 00080 { 00081 int res = 0; 00082 00083 r_id=0; 00084 r_b1=0; 00085 r_b2=0; 00086 r_b3=0; 00087 r_b4=0; 00088 00089 for(int i=0; i<9; i++){ 00090 if( r_mess_id[i] != 0 && res==0 ) { 00091 r_id = r_mess_id[i] ; 00092 r_b1 = r_mess_data[i*3+i+0]; 00093 r_b2 = r_mess_data[i*3+i+1]; 00094 r_b3 = r_mess_data[i*3+i+2]; 00095 r_b4 = r_mess_data[i*3+i+3]; 00096 r_mess_id[i] = 0 ; 00097 res=1; 00098 } 00099 } 00100 return res; 00101 } 00102 00103 00104 00105 00106 // выбираем сообщение из очереди для отправки 00107 // и помещаем в раб. переменные 00108 int can_select_wr() 00109 { 00110 00111 int res = 0; 00112 00113 w_id=0; 00114 w_b1=0; 00115 w_b2=0; 00116 w_b3=0; 00117 w_b4=0; 00118 00119 for(int i=0; i<9; i++){ 00120 if( w_mess_id[i] != 0 && res==0 ) { 00121 w_id = w_mess_id[i] ; 00122 w_b1 = w_mess_data[i*3+i+0]; 00123 w_b2 = w_mess_data[i*3+i+1]; 00124 w_b3 = w_mess_data[i*3+i+2]; 00125 w_b4 = w_mess_data[i*3+i+3]; 00126 w_mess_id[i] = 0 ; 00127 res=1; 00128 } 00129 } 00130 00131 return res; 00132 } 00133 00134 00135 00136 00137 00138 00139 00140 00141 00142
Generated on Sat Jul 16 2022 13:16:40 by
1.7.2