Hallo ich verwende die rfm lib von benedikt mit der polling methode und software spi. es funktioniert auch soweit das einzige problem ist dass ich nur werte bis 127 senden kann über 127 wird nur noch das erste byte gesendet und die anderen werden dann nicht mehr gesendet. wobei das erste byte von 0-255 funktioniert wie es auch sein soll.
Gast
#2326140
ich kenne die Lib nicht, aber das schaut doch nach nem signed/unsigned Fehler aus siehe: http://de.wikipedia.org/wiki/Integer_%28Datentyp%29
und wieso funktioniert es mit dem 1sten byte ganz normal das array der daten ist ein unsigned char array
Gast
#2326223
wie gesagt, ich kenne die Lib nicht, aber 127 ist das Maximum bei signed int. Da du auch kein Quelltext postet kann ich da jetzt auch nicht weiterhelfen...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
Gast
#2326280
Wenn das der Code ist, den du benutzt, dann würd ich sagen, liegt es nicht daran, sondern an deinem Code, den du hier nicht gepostet hast.
Gast
#2326283
und wo ist da der Teil von dir der nicht geht? Ich kann da ehrlich gesagt auf den ersten Blick kein char-Array erkennen
Sender
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
Empfänger
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
das ist der code von mir...
usart_write("%s\n",rx);
Was sagt das %s noch mal ?
dass rx ein string ist
Gast
#2328659
Das ist ja wie bei Super Mario hier: Thank You Mario, But Our Princess Is In Another Castle! Der Fehler ist in der usart_write() funktion.
>>usart_write("%s\n",rx); >>Was sagt das %s noch mal ? >dass rx ein string ist So, ich kenn jetzt zwar Deine usart_write funktion nicht, aber daß die printf Format-Bezeichner kann, ist schon mal einen Blick wert. Wenn die dann auch wirklich noch ein %s verträgt, dann sollte man den rx-string auch noch ne Null am Ende spendieren. BTW, rf12_rxdata gibt void zurück: void rf12_rxdata(unsigned char *data, unsigned char number); uint8_t k= rf12_rxdata(rx,6); Was ist dann nochmal k? Einfach mal mit einem sprintf testen: sprintf(buf, "%x,%x,%x,%x,%x,%x", rx[0], ..., rx[5]); usart_write(buf); Was gibt das ?
das k ist noch übergeblieben von einer anderen lib... jz hab ich so gemacht
1 | |
2 | |
3 | |
4 | |
5 | |
und senden wie vorher wenn ich jetzt
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
sende empfange ich per uart(in dezimal) 254 005 005 254 005 005 mit
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
empfange ich 030 005 005 030 005 005 also irgendwie wird da alles doppelt gesendet
hat jemand für mich einen rat?
Gast
#2331569
hi.. also ich habe zum testen meiner module meist keine fixen zahlen, sondern immer veränderliche werte gesendet.. also einen index, den du ständig hochzählst.. damit kannst du sichergehen, ob nicht vielleicht die letzten 3 zeichen einfach schon der beginn einer neuen übertragung o.ä. sind.. mfg
Gast
#2412799
Das ganz oben genante Problem habe ich auch mit Zwei 433 Mhz Pollin Module seit ein paar Tagen. Aber davor gingen die Dinger einwandfrei. Ich glaube das es an den Modulen liegt. Habe alerdings nur zwei Module.
Gast
#2412928
nimm doch den treiber von j.eckert, der ist sowieso sinnvoller weil interrupt-gesteuert.. mfg
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.