Forum: Mikrocontroller und Digitale Elektronik rs232 mega8


von benji (Gast)


Lesenswert?

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

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

>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?

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

> "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).

von benji (Gast)


Lesenswert?

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

von benji (Gast)


Lesenswert?

anhang:   pc seitig, gan ein einfaches programm welches 1 oder 0 an uC 
sendet, welches dieser dann interpretiert..

von benji (Gast)


Lesenswert?

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

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

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.

von unsichtbarer WM-Rahul (Gast)


Lesenswert?


von Name (Gast)


Lesenswert?

minicom

von benji (Gast)


Lesenswert?

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

von Name (Gast)


Lesenswert?

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".

von Karl heinz B. (kbucheg)


Lesenswert?

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
Noch kein Account? Hier anmelden.