Guten Tag
Benutze die RF12 Libary von Benedikt!
Sie funktioniert mittlerweile auch einwandfrei auf 868Mhz...
Nun will ich allerdings daten in dem Typ short übertragen.
Ich bekomm allerdings immer folgende Fehlermeldung vom Compiler
("../Jufo_Sender_3.c:36: warning: passing argument 1 of 'rf12_txdata'
makes pointer from integer without a cast")
Benutze folgende Code bin leider noch eher unerfahren im Programmieren
von Mikrocontroller bitte also um Nachsicht ;)!
1 | #include <avr/interrupt.h>
|
2 | #include <avr/io.h>
|
3 | #include <avr/rf12.h>
|
4 | #include <inttypes.h>
|
5 | //------------------------------------------------------------------------------
|
6 | uint8_t i;
|
7 | uint16_t adc_value;
|
8 | short voltage_sensor;
|
9 | int main (void)
|
10 | {
|
11 | unsigned char test[100]="test hallo2\n";
|
12 | DDRD = (1<<6)|(1<<4);
|
13 |
|
14 | PORTD |= (1<<6);
|
15 | PORTD |= (1<<4);
|
16 |
|
17 | DDRB = (1<<3);
|
18 | PORTB = (1<<3);
|
19 |
|
20 |
|
21 | rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz)
|
22 | rf12_setfreq(RF12FREQ(868.5)); // Sende/Empfangsfrequenz auf 433,92MHz einstellen
|
23 | rf12_setbandwidth(5, 1, 4); // 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm
|
24 | rf12_setbaud(9600); // 19200 baud
|
25 | rf12_setpower(0, 6); // 1mW Ausgangangsleistung, 120k
|
26 |
|
27 | while(1)
|
28 | {
|
29 | for(i=0;i<4;i++)
|
30 | {
|
31 | ADCSRA |=(1<<ADSC);
|
32 | while (ADCSRA & (1<<ADSC));
|
33 | adc_value +=ADCW;
|
34 | }
|
35 | adc_value /=4;
|
36 | voltage_sensor = adc_value * 5.0/1024.0;
|
37 | rf12_txdata(voltage_sensor,1);
|
38 | for(long a = 0;a<100000;a++){asm("nop");};
|
39 |
|
40 | }
|
41 | }
|