teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

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

2017/02/01 02:03

投稿

yamayamak
yamayamak

スコア131

title CHANGED
File without changes
body CHANGED
@@ -12,12 +12,23 @@
12
12
  こんな感じで書いたりしているのですが、よくわからないです。
13
13
 
14
14
  ```ここに言語を入力
15
- char data1[20] = "123,456,789";
15
+ char data1[20] = "0x123,0x456,0x789";
16
16
 
17
17
  testObj test();
18
18
  int objSize = sizeof(data2) / sizeof(unsigned int);
19
19
 
20
- test.sendData((unsigned int)data2[], objSize );
20
+ test.sendData((unsigned int)data1[], objSize );
21
21
  ```
22
22
 
23
+ ちなみに、char型ではなく
24
+
25
+ unsigned int data1[] = {0x123,0x456,0x789};
26
+
27
+ で定義した場合は
28
+
29
+ test.sendData( data1, objSize );
30
+
31
+ で問題なく動いております。
32
+ 現状はArduinoのEEPROMにあるデータが文字列で保存されておりchar型で読み出して利用したいということになります。
33
+
23
34
  すみませんがHelpしてください。

1

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

2017/02/01 02:03

投稿

yamayamak
yamayamak

スコア131

title CHANGED
File without changes
body CHANGED
@@ -1,40 +1,23 @@
1
1
  ###前提・実現したいこと
2
2
  C++のプログラムを記載しています。
3
3
 
4
- あるdata1に定期的に”0x”を付与して、新しいdata2を作りたいです。
5
- data2を以下のクラスメンバの「unsigned int buf[]」に渡して実行したいです。
4
+ あるchar型data1にクラスメンバの「unsigned int buf[]」に渡して実行したいです。
6
5
 
7
6
  class testObj
8
7
  {
9
8
  public:
10
- void sendData(unsigned int buf[], int len, int hz);
9
+ void sendData(unsigned int buf[], int len);
11
10
  }
12
11
 
13
12
  こんな感じで書いたりしているのですが、よくわからないです。
14
13
 
15
14
  ```ここに言語を入力
16
15
  char data1[20] = "123,456,789";
17
- char data2[50];
16
+
18
- int j = 0;
19
- for (int i = 0; i <= sizeof(data1)+1; i++) {
20
- if ( i%4 == 0 ) {
21
- data2[j] = '0';
22
- data2[j+1] = 'x';
23
- j = j + 2;
24
- }
25
- data2[j] = data1[i];
26
- j++;
27
- }
28
- data2[j] = '\0';
29
17
  testObj test();
30
18
  int objSize = sizeof(data2) / sizeof(unsigned int);
19
+
31
- test.sendData((unsigned int)data2[], objSize , 38);
20
+ test.sendData((unsigned int)data2[], objSize );
32
21
  ```
33
22
 
34
- int objSize = sizeof(data2) / sizeof(unsigned int);
35
-
36
- もたぶん、間違っています。
37
- まず、charのサイズは出るのでしょうか?
38
- 割算は切り上げ?余りは良いのでしょうか?
39
-
40
23
  すみませんがHelpしてください。