質問編集履歴

2

プログラムの更新。

2019/08/27 07:52

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  while(1){
66
66
 
67
- i = XBee_MakePacket10(dt,adrs,"bbbb",4) ;
67
+ i = XBee_MakePacket10(dt,adrs,"test",4) ;
68
68
 
69
69
  x = XBee_SendPacket10(dt,i,0) ;
70
70
 

1

プログラムを見直しました。

2019/08/27 07:52

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -30,8 +30,6 @@
30
30
 
31
31
 
32
32
 
33
-
34
-
35
33
  void main(void) {
36
34
 
37
35
  OSCCON=0x72; //PLL Disable/8MHz
@@ -46,7 +44,7 @@
46
44
 
47
45
  LATC=0x00;
48
46
 
49
-
47
+
50
48
 
51
49
  RXDTSEL = 0;
52
50
 
@@ -62,14 +60,16 @@
62
60
 
63
61
  SPBRGL = 0x33; //下位8bit
64
62
 
65
-
63
+
66
64
 
67
65
  while(1){
68
66
 
69
- i = XBee_MakePacket10(dt,adrs,"wxyyz",4) ;
67
+ i = XBee_MakePacket10(dt,adrs,"bbbb",4) ;
70
68
 
71
69
  x = XBee_SendPacket10(dt,i,0) ;
72
70
 
71
+ __delay_ms(5000);
72
+
73
73
  }
74
74
 
75
75
  }
@@ -82,92 +82,92 @@
82
82
 
83
83
  {
84
84
 
85
- int i ;
85
+ int a ;
86
+
87
+ for (a = 0 ; a < num ; a++) {
88
+
89
+ while(TXIF == 0) ; // 送信可能になるまで待つ
90
+
91
+ TXREG = *dt++ ; // 送信する
92
+
93
+ }
94
+
95
+ }
96
+
97
+
98
+
99
+
100
+
101
+ char XBee_CheckSum_Make(char *packet_dt,int len)
102
+
103
+ {
104
+
105
+ int i , c , x ;
106
+
107
+
108
+
109
+ c = len - 4 ;
110
+
111
+ x = 0 ;
112
+
113
+ packet_dt = packet_dt + 3 ; // 4バイト目から開始
114
+
115
+ for (i = 0 ; i < c ; i++) {
116
+
117
+ x = x + *packet_dt ;
118
+
119
+ packet_dt++ ;
120
+
121
+ }
122
+
123
+ x = 0xff - (x & 0xff) ;
124
+
125
+ return (unsigned int) x ; // 計算したチェックサム値を返す
126
+
127
+ }
128
+
129
+
130
+
131
+
132
+
133
+ int XBee_MakePacket10(char *packet_dt, const char *adrs, const char *data, int num)
134
+
135
+ {
136
+
137
+ int x , i ;
138
+
139
+
140
+
141
+ packet_dt[0] = 0x7E ; // 開始コード
142
+
143
+ x = num + 14 ;
144
+
145
+ packet_dt[1] = (unsigned int)(x / 256) ; // フレームデータの長さ
146
+
147
+ packet_dt[2] = (unsigned int)(x % 256) ;
148
+
149
+ packet_dt[3] = 0x10 ; // フレームタイプ
150
+
151
+ packet_dt[4] = 0x00 ; // フレームID
152
+
153
+ for (i = 5 ; i < 13 ; i++) {
154
+
155
+ packet_dt[i] = *adrs ; // 送信先の64ビットアドレス
156
+
157
+ adrs++ ;
158
+
159
+ }
160
+
161
+ packet_dt[13] = 0xFF ; // 送信先の16ビットアドレス
162
+
163
+ packet_dt[14] = 0xFE ;
164
+
165
+ packet_dt[15] = 0x00 ; // 最大ホップ数
166
+
167
+ packet_dt[16] = 0x00 ; // 送信オプション
86
168
 
87
169
  for (i = 0 ; i < num ; i++) {
88
170
 
89
- while(TXIF == 0) ; // 送信可能になるまで待つ
90
-
91
- TXREG = *dt++ ; // 送信する
92
-
93
- }
94
-
95
- }
96
-
97
-
98
-
99
-
100
-
101
- char XBee_CheckSum_Make(char *packet_dt,int len)
102
-
103
- {
104
-
105
- int i , c , x ;
106
-
107
-
108
-
109
- c = len - 4 ;
110
-
111
- x = 0 ;
112
-
113
- packet_dt = packet_dt + 3 ; // 4バイト目から開始
114
-
115
- for (i = 0 ; i < c ; i++) {
116
-
117
- x = x + *packet_dt ;
118
-
119
- packet_dt++ ;
120
-
121
- }
122
-
123
- x = 0xff - (x & 0xff) ;
124
-
125
- return x ; // 計算したチェックサム値を返す
126
-
127
- }
128
-
129
-
130
-
131
-
132
-
133
- int XBee_MakePacket10(char *packet_dt, const char *adrs, const char *data, int num)
134
-
135
- {
136
-
137
- int x , i ;
138
-
139
-
140
-
141
- packet_dt[0] = 0x7E ; // 開始コード
142
-
143
- x = num + 14 ;
144
-
145
- packet_dt[1] = x / 256 ; // フレームデータの長さ
146
-
147
- packet_dt[2] = x % 256 ;
148
-
149
- packet_dt[3] = 0x10 ; // フレームタイプ
150
-
151
- packet_dt[4] = 0x00 ; // フレームID
152
-
153
- for (i = 5 ; i < 13 ; i++) {
154
-
155
- packet_dt[i] = *adrs ; // 送信先の64ビットアドレス
156
-
157
- adrs++ ;
158
-
159
- }
160
-
161
- packet_dt[13] = 0xFF ; // 送信先の16ビットアドレス
162
-
163
- packet_dt[14] = 0xFE ;
164
-
165
- packet_dt[15] = 0x00 ; // 最大ホップ数
166
-
167
- packet_dt[16] = 0x00 ; // 送信オプション
168
-
169
- for (i = 0 ; i < num ; i++) {
170
-
171
171
  packet_dt[17+i] = *data ; // 送信するデータ
172
172
 
173
173
  data++ ;
@@ -194,22 +194,12 @@
194
194
 
195
195
  {
196
196
 
197
- char dt[36] ;
198
-
199
- int x , ans , c ;
200
-
201
-
202
-
203
- ans = 0 ;
204
-
205
197
  if (sw == 0) {
206
198
 
207
199
  UART_Send(packet_dt,len) ;
208
200
 
209
201
  }
210
202
 
211
- return ans ;
212
-
213
203
  }
214
204
 
215
205
  ```