- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 54

Thema: Ansteuerung von Funkmodul RFM12

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    Hallo Grandalf,

    ich habe mal irgendwo im Internet diese Datei gefunden (waren eigentlich mehere, hab sie aber zusammengefügt und noch ein bisschen bearbeitet):
    RFM12.h
    Die def.h Datei braucht man, wenn der Compiller die Makros sbi und cbi nicht kennt (zb. AVR-GCC). Sie werden in dieser Datei definiert.
    Code:
    #include <avr/io.h>
    
    #ifdef _C_
    #define true  1
    #define false 0
    #endif
    
    #ifndef cbi
    #define cbi(sfr, bit) sfr &= ~(1 << bit)
    #endif
    #ifndef sbi
    #define sbi(sfr, bit) sfr |= (1 << bit)
    #endif
    
    #ifndef bit_is_set
    #define bit_is_set(sfr, bit) sfr & (1 << bit)
    #endif
    #ifndef bit_is_clear
    #define bit_is_clear(sfr, bit) !(sfr & (1 << bit))
    #endif
    #ifndef loop_until_bit_is_set
    #define loop_until_bit_is_set(sfr, bit) while(sfr & (1 << bit))
    #endif
    #ifndef loop_until_bit_is_clear
    #define loop_until_bit_is_clear(sfr, bit) while(!(sfr & (1 << bit)))
    #endif
    #ifndef BV
    #define BV(bit) (1 << bit)
    #endif
    Um das Modul nun zu initialisieren muss man folgende Funktionen aufrufen:
    Code:
    rf12_init();					// ein paar Register setzen (z.B. CLK auf 10MHz)
    	rf12_setfreq(RF12FREQ(433.92));	// Sende/Empfangsfrequenz auf 433,92MHz einstellen
    	rf12_setbandwidth(4, 1, 4);		// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 
    	rf12_setbaud(19200);			// 19200 baud
    	rf12_setpower(0, 6);			// 1mW Ausgangangsleistung, 120kHz Frequenzshift
    (Vielleicht vor und nach den Funktionen noch ein paar ms warten.)

    Es stehen insgesamt folgende Funktionen zur Verfügung:
    Code:
    extern unsigned short rf12_trans(unsigned short wert);					// transfer 1 word to/from module
    extern void rf12_init(void);											// initialize module
    extern void rf12_setfreq(unsigned short freq);							// set center frequency
    extern void rf12_setbaud(unsigned short baud);							// set baudrate
    extern void rf12_setpower(unsigned char power, unsigned char mod);		// set transmission settings
    extern void rf12_setbandwidth(unsigned char bandwidth, unsigned char gain, unsigned char drssi);	// set receiver settings
    extern void rf12_txdata(unsigned char *data, unsigned char number);		// transmit number of bytes from array
    extern void rf12_rxdata(unsigned char *data, unsigned char number);		// receive number of bytes into array
    extern void rf12_ready(void);											// wait until FIFO ready (to transmit/read data)
    mfg _R2D2
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress