Kani-Coaching (C lernen mit Nomis)

Ich habe mir mal ein anderes Terminalprogramm runtergeladen.
Wenn ich damit Connecte und z.B. "Hallo" schreibe und auf senden klicke, geht die Blaue Empfangsled ganz kurz an und wieder aus. Es ist kaum wahrzunehmen wenn man nicht genau hinguckt. Also müsste die Leitung ja passen.
 
Hi Kani,

Ich habe mir mal ein anderes Terminalprogramm runtergeladen.
ich nehme nur noch Putty 0.6.0 . Oder nimm dir TeraTerm . Das ist wenigstens
was reelles. Alles andere ist - naja - Vor allem HyperTerm von Windows ist
totale Grütze! Auf der Arbeit für Router,Switche, ... zum konfigurieren ist
bei uns nur noch TeraTerm oder PuTTY in gebrauch. ZOC ist auch gut aber
Shareware (ich glaube 30Tage sind frei).

Wenn ich damit Connecte und z.B. "Hallo" schreibe und auf senden klicke, geht die Blaue Empfangsled ganz kurz an und wieder aus. Es ist kaum wahrzunehmen wenn man nicht genau hinguckt. Also müsste die Leitung ja passen.
So sollte es auch aussehen :D Bei jedem Tastendruck siehst Du einen kurzen
Blitz auf der LED. Das sind zwar mehrere Blitze aber die sind so kurz
hintereinander das du nur ein einziges aufblitzen siehst.

Aber Connecten braucht man nicht. Dranstecken und fertig. Du hast bei der
RS232 keinen wirklichen Verbindungsaufbau wie bei TCP/IP oder so. Es wird
einfach jedes Zeichen was du auf der Tastatur drückst übertragen. Das,
was da mit Connect steht ist für die Einwahl mit einem Modem in einen
Zugangspunkt gedacht. Für dich also absolut uninteressant und unnötig.

Wenn ich heute abend noch etwas Zeit habe, dann seh ich mir die Sache
von dir noch mal genauer an. ...

Gruß
Dino
 
Hi Dino,

also hab mit Nomis das Problem gefunden. Dein Plan ist falsch.
T2OUT und R2IN ist vertauscht und die Belegung der Buchse Spiegelverkehrt. Aber jetzt läuft es.
 
Okay, da der USART jetzt läuft, beschäftigen wir uns mit der Übergabe von Strings an den Mikrocontroller zum schalten von Ports.

Ich lese mir erstmal was über Strings und ihre Verarbeitung durch.
 
Hi Kani,

Hi Dino,

also hab mit Nomis das Problem gefunden. Dein Plan ist falsch.
T2OUT und R2IN ist vertauscht und die Belegung der Buchse Spiegelverkehrt. Aber jetzt läuft es.
Au haua. Da war es wohl doch schon etwas spät ... :rolleyes:
Posting #90 01.04.2009 21:47
war ich wohl nicht mehr so ganz wach. :vollkommenauf: Nen April-Scherz sollte es auf jeden
Fall nicht werden. :eek:

Ich glaub als Strafmaßnahme werde ich demnächst mal ne FAQ mit
USART-Verkabelung vom uP zum PC machen :D mit allen möglichen
Steckerbelegungen ...

Gruß
Dino
 
Mach dir keinen Kopf drum, im Internet gibt es auch viele Beispiele die so sind wie deins. Komisch eigentlich.
 
So meine Ergebnisse:
Da C ja keinen Datentyp für Zeichenketten zur Verfügung stellt, muss man sich etwas anderes suchen.

Hab mal ein bisschen gelesen und bin dabei auf Strings gestoßen:
So könnte man Wort darstellen:
Code:
char text[5];
text[0]='W';
text[1]='o';
text[2]='r';
text[3]='t';
text[4]='\0';

Es gibt viele Funktionen von Strings, zb. strcmp vergleicht zwei Strings.
Nur irgendwie muss der String ja auch auf dem Mikrocontroller empfangen werden.
 
Da C ja keinen Datentyp für Zeichenketten zur Verfügung stellt, muss man sich etwas anderes suchen.
C stellt aber schon einen Datentyp für Strings bereit, und zwar "char" in seiner Spezialform als Array. Gut, es ist kein String so wie man ihn aus Java oder C# kennt, aber es ist ein Datentyp. Du kannst sogar schreiben:
Code:
char text[]="Wort\0"



CodeBox C

char text[5];
text[0]='W';
text[1]='o';
text[2]='r';
text[3]='t';
text[4]='\0';
hmmm! Blöd, das mit den geöffneten Klammern. Aber sonst korrekt.

Es gibt viele Funktionen von Strings, zb. strcmp vergleicht zwei Strings.
Nur irgendwie muss der String ja auch auf dem Mikrocontroller empfangen werden.
Als Anfänger wärs aber wichtig sich das selber zu erarbeiten.
 
Kurze Gedanken zu RS232 ...

Hi Kani,

Mach dir keinen Kopf drum, im Internet gibt es auch viele Beispiele die so sind wie deins. Komisch eigentlich.
wolln mal sehen ...
Also am PC ist das folgendermaßen ...

Sub-D 25pol (im PC männlich - Stecker)
(2)TxD -->-- zum ATmega
(3)RxD --<-- vom ATmega
(7)GND -----

Sub-D 9pol (im PC männlich - Stecker)
(2)RxD --<-- vom ATmega
(3)TxD -->-- zum ATmega
(5)GND -----


MAX232
RS232 -->-- R1in(13)=>=R1out(12) -->-- TTL RxD
RS232 --<-- T1out(14)=<=T1in(11) --<-- TTL TxD

RS232 -->-- R2in(8)=>=R2out(9) -->-- TTL RxD
RS232 --<-- T2out(7)=<=T2in(10) --<-- TTL TxD


Zusammengeschaltet ...
Sub-D 9pol ------------- MAX232 -------------- ATmega
PC(2)RxD--<--MAX(7)T2out=<=MAX(10)T2in--<--Mega644(15)TXD0
PC(3)TxD-->--MAX(8)R2in==>=MAX(9)R2out-->--Mega644(14)RXD0
PC(5)GND-----------------GND------------------GND

so müßte das dann stimmen ...

Und im Plan war es verdreht. Stimmt. War wohl etwas spät :D
Jetzt ist es auf jeden Fall mal klein aufgefieselt wie es zusammenspielt.

- - - - - - - - - korrigiertes Schaltbild - - - - - - -
MAX232_ok.png
jetzt stimmt die Steckerbelegung :D

Gruß
Dino
 
Wie sieht das Oszillogramm aus?

Hallo,
hier der UART, in der Variante, wie er von mir oben beschrieben wurde.
Pinbelegung hier:#107
Funktionstest:

Siehe Bildchen.

Die Reihenfolge der Übertragung erfolgt vom least significant zum most significant Bit, also von Bit 0 zu Bit 7 (von links gesehen).

Gruß von Oskar01

P.S.:
Es wird der Buchstabe "H" gesendet.
 

Anhänge

  • V24__48HEX.PNG
    V24__48HEX.PNG
    3,4 KB · Aufrufe: 8
Hallo (Anfänger),

mit dem Verbindungskabel kann man sich auch leicht vertun, besonders zu vorgerückter Stunde, wenn man es selbst konfektioniert. Ging mir beim allerersten Mal so. Da war die Enttäuschung nach Anschluss erstmal gross. Also:
PC/Com= Male, Programmierboard/Max232= Female --> Die Drähte 2 und 3 des Kabels nicht vertauscht.


Ostergrüsse,

Michael
 
Hallo zusammen,

nur mal ne kurze Info ...

Ich hab bei mir mit nem USB-RS232-Dongle ne 250kBit-Übertragung sauber
auf die Reihe bekommen (ATmega168 @20MHz).
Und nen ATmega48 @25MHz läuft auch mit 1200Bit/s sauber.
Bei 25MHz könnte man maximal 3,125MBit/s rausholen :D

Gruß
Dino
 
Ich war über Ostern auf Spiekeroog und hab in den Pausen mal mit dem Programm für meine Vitrine angefangen. :p

Beim Programmieren ist mir einer Idee gekommen. Ich wollte zwei 7-Segment-Anzeigen nehmen und multiplexen. Um Pins zu sparen ist mir die Idee gekommen, einfach an einem Pin einen BC557 und einen BC547 zu machen und diese dann abwechselnd an und auszuschalten. Müsste doch gehen oder?
 
Hi Kani,

Um Pins zu sparen ist mir die Idee gekommen, einfach an einem Pin einen BC557 und einen BC547 zu machen und diese dann abwechselnd an und auszuschalten. Müsste doch gehen oder?
Ja/Nein/nicht wirklich ...

Der BC557 (pnp) braucht GND zum durchsteuern.
der BC547 (npn) braucht +5V zum durchsteuern.

Die Last (das Display) sollte aber bei beiden am Kollektor hängen.
Also beim BC557 vom Kollektor nach GND (=gemeinsame Anode)
und beim BC547 vom Kollektor nach +5V (=gemeinsame Kathode).

Idee war gut aber die Umsetzung bleibt leider im Ansatz stecken.

Du kannst es aber folgendermaßen machen ...
Beide Anzeigen mit gleichem Typ schalten (pnp oder npn aber gleich)
und dem einen Transistor noch einen als Inverter vorsetzen. Dann
läuft es wie gewünscht :D (also gesamt 3Stk)

Gruß
Dino
 
Hm ne dann nehme ich zwei Pins. :p

Gibt den Comport Strom raus? Also kann man mit einem USB-RS232 Dongle den Controller mit Strom versorgen?
 
Hi Kani,

Gibt den Comport Strom raus? Also kann man mit einem USB-RS232 Dongle den Controller mit Strom versorgen?
das wird nicht hinhauen. Wenn Du nur 1-2mA benötigst dann gibt es
Schaltungen um aus den Leitungen eines RS232-Ports Strom abzuzweigen.
Aber mehr wird da nicht gehen. Diese Schaltungen zweigen den Strom
nämlich aus den Datenleitungen des Ports ab (RTC,CTS,DTR,DSR,RxD,TxD)
Da kann man nicht viel erwarten.

Für Kleinkram nehme ich immer nen modifiziertes USB-Kabel. Da kann man den
Controller mit nem LCD aus dem USB-Port versorgen. So 50..100mA ist da dann
aber auch maximum. Und wenn Du da nicht aufpaßt, dann schrottest du deinen
PC. Ist also etwas heikel.

Nimm also lieber nen Steckernetzteil. Ist sicherer und hat genug Reserve.

Gruß
Dino
 
Ich denke schon das das so funktioniert wie Kani meint.
Kani hatte den Effekt nämlich als er bei seinen 3 Gemultiplexten 7Segmentanzeigen versehentlich einen NPN eingebaut hatte. Das Resultat war das eine Anzeige eben genau dann leuchtete als sie nicht sollte.

Die Transistoren werden doch immer noch durchschalten:
Beim NPN floss der Basisstrom bei HIGH(am PORT) über den Basisvorwiderstand durch die Basis weiter zu den LEDs samt Vorwiderständen wodurch der Transistor durchschaltete.
Beim PNP floss der Basisstrom bei LOW(am PORT) von der 5V Versorgung durch Emitter und Basis über den Basisvorwiderstand in den AVR wodurch der Transistor durchschaltete.
 
@Nomis: Genau, deßwegen bin ich auch die Idee gekommen. :pleasantry:

Naja, ich brauche nur Strom für den Controller selbst. Da kommen 32 Taster dran und die USART-Verbindung, dass war es.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)