Hallo, ich benutze HTerm 0.6.5 um die Kommunikation mit meinem Atmel Board zu prüfen. Nun habe ich das Problem das ich recht viele Steuerkommandos senden muß und würde dies gerne in einem File ablegen. Dachte dies ist über Send File möglich habe es aber nicht geschafft ein Sendfile zu generieren das die einzelnen Befehle zusammenfasst. In der einzel Input Zeile funktioniert das wenn ich z.b 830000100000 sende, im Fenter darunter steht dann 830000100000\r und das Kommando geht. Wenn ich nun ein Textfile mit dem selben Input über Send File schicke passiert gar nichts. Hat hier jemand eine Idee wie der Aufbau sein muß oder was schief läuft? Vielen Dank! Gruß, Deimos
:
Gesperrt durch Moderator
Je nachdem, in welchem Format Du Deine Ziffernreihe eingegeben hast (ASC, HEX, DEC oder BIN), muß Dein Textfile in demselben Format sein. Außerdem muß das File auch die Steuerzeichen für den Zeilenvorschub enthalten, falls nötig.
Travel Rec. wrote: > Je nachdem, in welchem Format Du Deine Ziffernreihe eingegeben hast > (ASC, HEX, DEC oder BIN), muß Dein Textfile in demselben Format sein. Das glaube ich nicht; ich nehme an, daß der Inhalt des Files so gesendet wird, wie die Zeichen dort drinstehen, d.h. jedes ASCII-Zeichen wird gesendet wie's in der Datei steht; ob es lesbar ist oder nicht, spielt keine Rolle. Das Format, von dem Du geschrieben hast (ASC, HEX, DEC oder BIN), bedeutet ja nur die Angabe, wie HTerm das Getippte in der Kommandozeile interpretieren soll, d.h. daß es beispielsweise 0x0f als Byte sendet, wenn Du im BIN-Format 00001111 eingetippt hast. Für "SendFile" ist dieses Eingabeformat aber völlig irrelevant.
Hi, ich benutze auch HTerm. Der Inhalt der Datei wird gesendet so wie es drinsteht. Also wenn das Zeichen = 5Dh dann wird 5Dh übertragen. Wenn man z.B. in Ascii 12345 als File sendet, dann kommt 12345 an. Wenn ich 12345 eintippe und dann verschicke kommt 12345\r an. Also wenn Du das \r brauchst, dann mußt Du es in Dein zu sendendes File einbauen. Lange Rede kurzer Sinn: Travel Rec. hat meiner Meinung nach recht. :-) Gruß Bernd
Hallo, also mit \r hatte ich es schon probiert da nimmt er aber nur den ersten Befehl. Habe dann mal das Empangsfile aufgezeichnet dort werden die dann mit C und einem kleinen Viereck abgeschlossen das er hier im Post nicht darstellen will. Wenn ich es damit mache nimmt er zumindest die ersten zwei Befehle. Aber auch sonst nichts. Im Protokoll ist festegelegt das mit Carriage Return die Nachricht beendet wird. Gab es da nicht mal so ein Problem zwischen Windows interpretation und Microcontroller? Gruß, Deimos
ich hab das noch nicht ausprobiert, kommt demnächst, aber mit welchem Programm hast Du die Datei erstellt? Da gibt es gewaltige Unterschiede. Am Besten wäre es, sich die Datei in einem Hexeditor anzusehen. Selbst da könnte beim Abspeichern noch was anders interpretiert werden. mfg
Heloo Friends, I have made this Program in AVR studio 6.2 for serial communication with Atmega16L. /* * UART1st.c * * Created: 2/16/2017 11:12:50 AM * Author: Labor39 */ #define FOSC 1000000// Clock Speed #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 //#include <avr/delay.h> #include <avr/io.h> unsigned char USART_Receive( void ) { /* Wait for data to be received */ while ( !(UCSRA & (1<<RXC)) ); /* Get and return received data from buffer */ return UDR; } void USART_Transmit( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ); /* Put data into buffer, sends the data */ UDR = data; } void USART_Init( unsigned int ubrr) { /* Set baud rate */ UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; /* Enable receiver and transmitter */ UCSRB = (1<<RXEN)| (1<<TXEN); /* Set frame format: 8data, 2stop bit */ UCSRC = (3<<UCSZ0); } int main(void) { USART_Init(MYUBRR); while(1) { //UDR = 'X'; //_delay_ms(2000); //TODO:: Please write your application code USART_Transmit(USART_Receive()); } } When I connect it with HTerm I got results shown in attached file. what ever data I transmit, it is not receiving by software. Please help me out. Thanks
Setz doch einfach den Haken bei HEX(neben "Clear recieved") dann siehst du was los ist. [EDIT: Mist, nicht aufs Datum geschaut....]
:
Bearbeitet durch User
Hallo, wie sieht der Input aus einer File (.txt ?) jetzt tatsächlich aus? Immer Zeile für Zeile wie eingegeben wird übertragen? Ok. Wie ist der Unterschied zwischen Dec. und Hex ? Ziffern einstellig, zweistellig ? Trennzeichen dazwischen ? 0x00 0x0A 0xFF ... ? 000AFF ? 001015 ? Gibt es Kommentarzeilen? Wie sind die gekennzeichnet? Es wäre schön wenn das irgendwo erklärt wäre. Ich habe bisher leider noch nix gefunden. Mit freundlichen Grüßen Ed62
Es ist so, dass HTerm alles binär sendet. Ob das nun Text oder Hex ist kommt nur auf die Interpretation der Datei bzw der Daten an. Ob die Datei nun *.txt oder *.hex Endung hat, ist nur für das Betriebssystem wichtig, damit es weiß, mit welchem Programm es die Datei öffnen soll, z.B. TXT Datei mit Notepad++ HEX Datei mit HxD usw. Erstellst du dir im Editor eine Datei wie "test.txt" und sendest diese, dann erhälst du auch Text, siehe "bild1.png". 1 = ASCII Darstellung 2 = HEX Darstellung Erstellst du dir mit HxD eine Datei wie "text.hex" und sendest diese, dann erhälst du Hex-Werte, wenn du diese so interpretierst "bild2.png". deshalb gibt es ja im HTerm die möglichkeit, die empfangenen Daten nach Ascii, Hex, Dec oder Bin zu interpretieren. Und es ist egal ob du die Datei nun .txt, .hex oder .blabla nennst. ! Sorry, "test.txt" wurde doppelt als Anhang angefügt !
:
Bearbeitet durch User
Ravikuamr Mevada schrieb: > Please help me out. Pls start a new thread in the english forum for a new topic in english language! https://embdev.net/forum/microcontrollers And use the [c] tags as proposed to format C code!
:
Bearbeitet durch Moderator