Korrektur des Funkprojekts
|
Bild 0-1: Verbindung PA7 am Mikrocontroller mit FSK am Sende/Empfangs-Modul
|
coach2.2_06_funk_PA7_plus5Volt.zip - AVR-Projekt mit korrigierter Klasse Funk in Funk.h
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.