Nabend,
habe zwei der o.g. Funkt-Transceiver an Atmegas hängen (je einer an
Atmega 8) und auf beide ein Beispielprogramm aufgespielt.
Habe nur eine kleine Änderung vorgenommen:
1 | while (!wl_module_data_ready()); //waits for RX_DR Flag in STATUS
|
2 | nRF_status = wl_module_get_data(payload); //reads the incomming Data to Array payload
|
3 | zaehler = payload[0];
|
4 |
|
5 | //und jetzt statt:
|
6 |
|
7 | /*itoa(zaehler, itoabuffer, 10); //conversion into String
|
8 | lcd_string(itoabuffer);*/
|
9 |
|
10 | //folgendes eingefügt:
|
11 | int test = zaehler;
|
12 | aus(PORTC,PC0);
|
13 | aus(PORTC,PC1);
|
14 | aus(PORTC,PC2);
|
15 | aus(PORTC,PC3);
|
16 | aus(PORTC,PC4);
|
17 | aus(PORTC,PC5);
|
18 | aus(PORTB,PB6);
|
19 | aus(PORTB,PB7);
|
20 | if (test & 0b00000001) {
|
21 | an(PORTC,PC0);
|
22 | }
|
23 | if (test & 0b00000010) {
|
24 | an(PORTC,PC1);
|
25 | }
|
26 | if (test & 0b00000100) {
|
27 | an(PORTC,PC2);
|
28 | }
|
29 | if (test & 0b00001000) {
|
30 | an(PORTC,PC3);
|
31 | }
|
32 | if (test & 0b00010000) {
|
33 | an(PORTC,PC4);
|
34 | }
|
35 | if (test & 0b00100000) {
|
36 | an(PORTC,PC5);
|
37 | }
|
38 | if (test & 0b01000000) {
|
39 | an(PORTB,PB6);
|
40 | }
|
41 | if (test & 0b10000000) {
|
42 | an(PORTB,PB7);
|
43 | }
|
Wenn ich den Integer "Test" per Hand befülle, zeigen mir die LEDs die
entsprechende Zahl an.
Leider leuchtet keine einzige, wenn ich versuche dies per Funk zu
empfangen (Sender zählt eine Variable hoch und verschickt diese Zahl
immer wieder)
Jetzt könnte es sein (scheint wohl häufiger zu sein), dass die nRF24L01
defekt sind (einmal stand mein programmer glaube ich auch
fälschlicherweise auf 5V statt 3V...)
Kann ich das irgendwie testen? Oder ist oben der Code schon falsch?