hallo jungs! bitte euch mal ganz dringend um hilfe.. ich arbeite das avr tutorial durch und benötige (leider sehr dringend) ein funktionierendes "terminal programm" (source) dazu, welches in C geschrieben ist.. sprich einfach ein standard gerüst (progg.c) welches ich evtl editieren kann.. ich möchte per rs232 schnittstelle den uC beliebige werte schicken welche er dann dementsprechen interpretiert. (ist die überhaupüt mögl oder kann ich nur 0 bzw 1 im byte senden?) ganz liebe grüße, benji
>kann ich nur 0 bzw 1 im byte Muaaa! Versuch' doch mal eine 2 oder 3 in ein Bit zu schreiben! Wenn man die serielle Schnittstelle mit den Parametern 8N1 betreibt, werden 1 Byte, 1 Stoppbit und keine Parität übertragen. Mehr als acht Bit überträgt diese serielle nicht. >ich arbeite das avr tutorial durch und benötige (leider sehr dringend) >ein funktionierendes "terminal programm" (source) dazu, welches in C >geschrieben ist.. Mit oder ohne Interrupt-Steuerung?
> "terminal programm"
Für welche Seite? Controller oder PC?
Fürn PC gibt es HTerm (Codesammlung oder PC-Forum).
Fürn µC gibt es im Datenblatt kurze Beispiele, die man nach belieben
modifizieren kann (i.d.R. funktionieren die auch).
oh.. sry ich vergas: http://www.mikrocontroller.net/sourcecode/tutorial/uart-led.asm dies ist das programm aus dem tut. zu welchem ich das programm suche.. @wm-rahul, also kann ich in zukunft immer nur 8 bit versenden ? lg, benji
anhang: pc seitig, gan ein einfaches programm welches 1 oder 0 an uC sendet, welches dieser dann interpretiert..
achja was vielleicht noch dazu sollte: ich arbeite unter linux und will diesen c source in einen programmierten webserver einbaun, daher bringt mit ein programm wie HTerm leider nichts :( am liebsten wär mir ein 20 zeiliger c source der das macht was ich will xD xD wo kann man sowas bestelln :P
HTerm, Hyperterm, unter Linux wird es auch sowas geben. >welches 1 oder 0 an uC Meinst du "1" und "0" oder 1 und 0? Die ersten beiden sind ASCII-Zeichen, die anderen beiden Zahlen. > also kann ich in zukunft immer nur 8 bit versenden Nein, du kannst natürlich mehr als nur 8 Bit versenden. Allerdings nicht in einem Datenrahmen, sondern immer nur nacheinander, also 8 Bit, 16 Bit, 24 Bit ... ganze Bytes maximal.
kurzer ausschnitt aus dem programm: . . . sbi UCSRB, RXCIE ; Interrupt bei Empfang sbi UCSRB, RXEN ; RX (Empfang) aktivieren sei ; Interrupts global aktivieren loop: rjmp loop ; Endlosschleife ; Interruptroutine: wird ausgeführt sobald ein Byte über das UART empfangen wurde int_rxc: push temp ; temp auf dem Stack sichern in temp, UDR cpi temp, '1' ; empfangenes Byte mit '1' vergleichen brne int_rxc_1 ; wenn nicht gleich, dann zu int_rcx_1 cbi PORTB, 0 ; LED einschalten int_rxc_1: cpi temp, '0' ; empfangenes Byte mit '0' vergleichen brne int_rxc_2 ; wenn nicht gleich, dann zu int_rcx_2 sbi PORTB, 0 ; LED ausschalten . . . ich möchte dieses programm zum laufen bringen.. ich brauche keine oberfläche sondern nur eine konsolenanwendung in c++ welche mir über rs232 vom pc werte verschickt sodass der uC sie auswerten kann
Da brauchst du kein c++. Mit setserial die passenden Kommunikationsparameter (Baudrate, Parity, ...) einstellen und dann: echo 1 > /dev/tty0 oder echo 0 > /dev/tty0 Such mal nach dem "serial howto".
Mein Unix ist schon lange her. Am einfachsten wird wohl sein, du schreibst das was du dem µC mitteilen möchtest in ein file. cat file > tty1 schickt das dann zur Seriellen. Die tty1 vorher natürlich richtig konfigurieren (baudrate, etc) Ansonsten: Das kann doch nicht so schwer sein ein Terminalpgm für Linux aufzutreiben. http://www.google.com Suchbegriff: "linux terminal download" Selbisges gilt für die Programmierung der Seriellen Schnittstelle unter Linux. Google ist dein Freund!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.