Korrektur des Funkprojekts
|
Bild 0-1: Verbindung PA7 am Mikrocontroller mit FSK am Sende/Empfangs-Modul
|
void Funk::init(void) { DDRA |= (1<<PA4); PORTA|= (1<<PA4); // Power zum FUNK-Modul einschalten //Auch PA7: DDRA |= (1<<PA7); PORTA|= (1<<PA7); // Funkbetrieb aktivieren RF_DDR |= (1<<SDI)|(1<<SCK)|(1<<CS); RF_PORT|= (1<<CS); for (unsigned char i=0; i<50; i++) _delay_ms(10); // wait until POR done trans(0xC0E0); // Set CLK output frequency: 10MHz trans(0x80D7); // Enable FIFO trans(0xC2AB); // Data Filter: internal trans(0xCA81); // Set FIFO mode trans(0xE000); // Disable wakeuptimer trans(0xC800); // Disable low duty cycle trans(0xC4F7); // AFC settings: autotuning: -10kHz...+7,5kHz }
Code 0-1: Änderung in Methode init()
void Funk::start(void) { init(); // Funkmodul anschalten und grundlegende Register setzen (z.B. autotuning) setfreq(RF12FREQ(433.12)); // Sende/Empfangsfrequenz auf 433,12MHz einstellen (weniger Störungen als der Standard bei 433,92MHz) setbandwidth(4, 1, 4); // 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm setbaud(19200); // 19200 baud setpower(0, 6); // 1mW Ausgangangsleistung, 120kHz Frequenzshift }
Code 0-2: Methode start() ruft Methode init() auf.