rs232 mega8

Gast #456528
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
Gast #456530
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?
Gast #456534
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).
Gast #456542
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
Gast #456544
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.
Gast #456553
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
Gast #456558
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".
#456559
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!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.