質問編集履歴

2

unsigned int data1でプログラム上に定義した場合は正常に動作していることを追記させて頂きました。

2017/02/01 02:03

投稿

yamayamak
yamayamak

スコア131

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```ここに言語を入力
28
28
 
29
- char data1[20] = "123,456,789";
29
+ char data1[20] = "0x123,0x456,0x789";
30
30
 
31
31
 
32
32
 
@@ -36,10 +36,32 @@
36
36
 
37
37
 
38
38
 
39
- test.sendData((unsigned int)data2[], objSize );
39
+ test.sendData((unsigned int)data1[], objSize );
40
40
 
41
41
  ```
42
42
 
43
43
 
44
44
 
45
+ ちなみに、char型ではなく
46
+
47
+
48
+
49
+ unsigned int data1[] = {0x123,0x456,0x789};
50
+
51
+
52
+
53
+ で定義した場合は
54
+
55
+
56
+
57
+ test.sendData( data1, objSize );
58
+
59
+
60
+
61
+ で問題なく動いております。
62
+
63
+ 現状はArduinoのEEPROMにあるデータが文字列で保存されておりchar型で読み出して利用したいということになります。
64
+
65
+
66
+
45
67
  すみませんがHelpしてください。

1

dataの文字列変更なども同じ内容に記載していましたが、Subjectの内容に特化しました。

2017/02/01 02:03

投稿

yamayamak
yamayamak

スコア131

test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- あるdata1に定期的に”0x”を付与して、新しいdata2を作りたいです。
8
-
9
- data2を以下のクラスメンバの「unsigned int buf[]」に渡して実行したいです。
7
+ あるchar型のdata1にクラスメンバの「unsigned int buf[]」に渡して実行したいです。
10
8
 
11
9
 
12
10
 
@@ -16,7 +14,7 @@
16
14
 
17
15
  public:
18
16
 
19
- void sendData(unsigned int buf[], int len, int hz);
17
+ void sendData(unsigned int buf[], int len);
20
18
 
21
19
  }
22
20
 
@@ -30,50 +28,18 @@
30
28
 
31
29
  char data1[20] = "123,456,789";
32
30
 
33
- char data2[50];
34
31
 
35
- int j = 0;
36
-
37
- for (int i = 0; i <= sizeof(data1)+1; i++) {
38
-
39
- if ( i%4 == 0 ) {
40
-
41
- data2[j] = '0';
42
-
43
- data2[j+1] = 'x';
44
-
45
- j = j + 2;
46
-
47
- }
48
-
49
- data2[j] = data1[i];
50
-
51
- j++;
52
-
53
- }
54
-
55
- data2[j] = '\0';
56
32
 
57
33
  testObj test();
58
34
 
59
35
  int objSize = sizeof(data2) / sizeof(unsigned int);
60
36
 
37
+
38
+
61
- test.sendData((unsigned int)data2[], objSize , 38);
39
+ test.sendData((unsigned int)data2[], objSize );
62
40
 
63
41
  ```
64
42
 
65
43
 
66
44
 
67
- int objSize = sizeof(data2) / sizeof(unsigned int);
68
-
69
-
70
-
71
- もたぶん、間違っています。
72
-
73
- まず、charのサイズは出るのでしょうか?
74
-
75
- 割算は切り上げ?余りは良いのでしょうか?
76
-
77
-
78
-
79
45
  すみませんがHelpしてください。