Hallo Leute,
ich versuche nun schon seit einigen Tagen eine Ansteuerung für ein
nRF24L01+ Funkmodul auf meinem Raspberry Pi zu realisieren. Ich nutze
zur Ansteuerung eine modifizierte Version der RF24.h, welche ich im
Internet gefunden habe. Passend dazu habe auch ein fertiges Programm im
Internet gefunden, welches ich ein wenig abgeändert habe:
1 | #include <stdio.h>
|
2 | #include <stdlib.h>
|
3 | #include <unistd.h>
|
4 | #include <string.h>
|
5 | #include <string>
|
6 | #include <getopt.h>
|
7 | #include <cstdlib>
|
8 | #include <iostream>
|
9 | #include "/home/pi/RF24/librf24-rpi/librf24/RF24.h"
|
10 |
|
11 | using namespace std;
|
12 | RF24 radio("/dev/spidev0.0",8000000,25); //spi device, speed and CSN,only CSN is NEEDED in RPI
|
13 | const int role_pin = 7;
|
14 | const uint64_t pipes[1] = { 0xF0F0F0F0E1LL };
|
15 |
|
16 | void setup(void)
|
17 | {
|
18 | //Prepare the radio module
|
19 | printf("\nPreparing interface\n");
|
20 | radio.begin();
|
21 | printf("Started\n");
|
22 | radio.setRetries( 15, 15);
|
23 | radio.setChannel(0x4c);
|
24 | radio.setPALevel(RF24_PA_MAX);
|
25 | radio.setPALevel(RF24_PA_MAX);
|
26 |
|
27 | radio.openWritingPipe(pipes[0]);
|
28 | radio.openReadingPipe(1,pipes[1]);
|
29 | radio.startListening();
|
30 | radio.printDetails();
|
31 | }
|
32 |
|
33 | void switchLight(void)
|
34 | {
|
35 | //This function send a message
|
36 |
|
37 | unsigned long message = 2;
|
38 |
|
39 | //Send the message
|
40 | bool ok = radio.write( &message, sizeof(unsigned long) );
|
41 | if (ok)
|
42 | printf("ok...");
|
43 | else
|
44 | printf("failed.\n\r");
|
45 | }
|
46 |
|
47 | int main( int argc, char ** argv)
|
48 | {
|
49 | uint8_t i;
|
50 |
|
51 | setup();
|
52 |
|
53 | for(i = 0; i < 1000; i++)
|
54 | {
|
55 | printf("Sending message...\n");
|
56 | switchLight();
|
57 | printf("Done...\n");
|
58 | }
|
59 | }
|
Ursprünglich war es ein Programm um ein Licht per Funk einzuschalten.
Nun soll das Programm ganz einfach immer wieder eine 2 an den
Kommunikationspartner senden. Das hat soweit nur den Sinn, dass ich auf
dem Oszi sehen möchte ob sich überhaupt was am SPI-Port des RPi tut.
Wenn ich das Program in der Konsole Kompeliere, so kommt folgende
Ausgabe:
Preparing interface
can't open device: no such file or directory
Hat sich schon mal einer von euch mit dem Thema befasst und kann mir
weiterhelfen?
Ich entschuldige mich schonmal im Voraus für den Programmierstill, aber
ich möchte erstmal einfach nur das es läuft. Danach werde ich dann alles
sauber Programmieren.