Auch wenn der Beitrag schon sehr alt ist, hänge ich mich mal ganz frech hier an
Ich versuche gerade erfolglos eines der drei Beispiele aus der Telemetriedokumentation lauffähig zu bekommen, aber egal was ich probiere es tut sich rein garnichts in der Telemtrieanzeige meiner Fernsteuerung. Auch mehrfaches Zurücksetzten der Telemetrieanzeige in der Fernsteuerung bewirkt nichts. Zu Kontrollzwecken habe ich zeitweise die Übertragung auf 8Bit zurückgestellt und am PC mittels Terminalprogramm eingelsen. Unterschiede zu den Beispielen sind dabei nicht aufgetreten. Da mir so langsam die Ideen ausgehen wäre es schön wenn mir jemand ein Tip geben könnte was ich falsch mache.
Verwendete Komponenten:
Fernsteuerung Jeti DS16 Firmware V3.02
Empfänger Jeti R6F Firmware V3.23 (Spannungsversorgung über Kanal 3 und am EXT-Anschluss der TxD-Pin vom Mikroprozessor)
Mikroprozessor: Atmel ATMega644 mit 7.3728 MHz Taktquarz und 10K Ohm Widerstand zwischen TxD und RxD
Verwendete Unterlagen:
Beschreibung EX-Protokoll:
www.jetimodel.com/de/show-file/26/
Quellcode siehe Anhang:
Da das Anhängen nicht klappt, hier der Quellcode:
#include <avr/io.h>
#define F_CPU 7372800UL //Systemtakt in Hz
#define BAUD0 9600UL //Baudrate Telemetrie
#include <util/delay.h>
void USART0_senden( unsigned char data )
{
while ( !( UCSR0A & (1<<UDRE0)) )
;
UDR0 = data;
}
void jeti_beispiel_data()
{
// EX Data
USART0_senden(0x07E);
USART0_senden(0x09F); // Protokoll EX-Data
USART0_senden(0x04C); // Upper Serial
USART0_senden(0x0A1); //
USART0_senden(0x0A8); // Lower Serial
USART0_senden(0x05D); //
USART0_senden(0x055); //
USART0_senden(0x000); // Reserved
USART0_senden(0x011); // Identifier 1:
USART0_senden(0x0E8); // Position Dezimalpunkt
USART0_senden(0x023); //
USART0_senden(0x021); // Identifier 2:
USART0_senden(0x01B); // Position Dezimalpunkt
USART0_senden(0x000); //
USART0_senden(0x0F4); // CRC
USART0_senden(0x0FE); // Protokoll simple Text
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x02A); // *
USART0_senden(0x04D); // M
USART0_senden(0x053); // S
USART0_senden(0x050); // P
USART0_senden(0x045); // E
USART0_senden(0x045); // E
USART0_senden(0x044); // D
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x06D); // *
USART0_senden(0x02F); // m
USART0_senden(0x073); // /
USART0_senden(0x020); // s
USART0_senden(0x020); //
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x020); // >
USART0_senden(0x031); // 1
USART0_senden(0x030); // 0
USART0_senden(0x030); // 0
USART0_senden(0x02E); // .
USART0_senden(0x030); // 0
USART0_senden(0x0FF);
}
void jeti_beispiel_text(){
USART0_senden(0x07E);
USART0_senden(0x09F); // Protokoll EX-Text
USART0_senden(0x00F); // Messagetype
USART0_senden(0x0A1); // Upper Serial
USART0_senden(0x0A8); //
USART0_senden(0x05D); // Lower Serial
USART0_senden(0x055); //
USART0_senden(0x000); // Reserved
USART0_senden(0x002); // Identifier
USART0_senden(0x02A); // Length
USART0_senden(0x054); // T
USART0_senden(0x065); // e
USART0_senden(0x06D); // m
USART0_senden(0x070); // p
USART0_senden(0x02E); // .
USART0_senden(0x0B0); // °
USART0_senden(0x043); // C
USART0_senden(0x028); // CRC
USART0_senden(0x0FE); // Protokoll simple Text
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x02A); // *
USART0_senden(0x04D); // M
USART0_senden(0x053); // S
USART0_senden(0x050); // P
USART0_senden(0x045); // E
USART0_senden(0x045); // E
USART0_senden(0x044); // D
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x06D); // *
USART0_senden(0x02F); // m
USART0_senden(0x073); // /
USART0_senden(0x020); // s
USART0_senden(0x020); //
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x020); // >
USART0_senden(0x031); // 1
USART0_senden(0x030); // 0
USART0_senden(0x030); // 0
USART0_senden(0x02E); // .
USART0_senden(0x030); // 0
USART0_senden(0x0FF);
}
void jeti_beispiel_alarm(){
USART0_senden(0x07E); // Protokoll Alarm
USART0_senden(0x092); // Länge
USART0_senden(0x023); // Akustischer Alarm
USART0_senden(0x059); // Ascii *Y* für Morsealarm
USART0_senden(0x0FE); // Protokoll simple Text
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x02A); // *
USART0_senden(0x04D); // M
USART0_senden(0x053); // S
USART0_senden(0x050); // P
USART0_senden(0x045); // E
USART0_senden(0x045); // E
USART0_senden(0x044); // D
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x020); //
USART0_senden(0x06D); // *
USART0_senden(0x02F); // m
USART0_senden(0x073); // /
USART0_senden(0x020); // s
USART0_senden(0x020); //
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x03E); // >
USART0_senden(0x020); // >
USART0_senden(0x031); // 1
USART0_senden(0x030); // 0
USART0_senden(0x030); // 0
USART0_senden(0x02E); // .
USART0_senden(0x030); // 0
USART0_senden(0x0FF);
}
int main(void)
{
// Register für USART0 setzen
// Asynchon
// Halbduplex
// 9 Datenbits
// 2 Stoppbits
// Odd-Parity
UBRR0 = (F_CPU / (BAUD0 * 16L) - 1);
UCSR0B |= (1<<TXEN0) | (1<<UCSZ02); // Senden aktiv; 9 Datenbits
UCSR0C |= (1<<UPM01) | (1<<UPM00) | (1<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00); // Asynchron; Odd Parity ; 2 Stoppbits; 9 Datenbits
while(1)
{
jeti_beispiel_data();
//jeti_beispiel_text();
//jeti_beispiel_alarm();
_delay_ms(20);
//_delay_ms(100);
//_delay_ms(200);
}
}