PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommunikation zwischen C++ und ATMega32 (realisieren??)



strunz
13.04.2006, 15:41
Hallo Leute,

ich weiss nicht genau ob ich hier richtig bin also sorry fals nicht!

Kann mir jemand bitte kurz erklären wie ich über die serielle Schnittstelle des PCs, meiner C++ Oberfläche und RxD/TxD meines ATMEGA32 Ports auslesen und setzten kann.

Meine Idee:
Ich reserviere zwei Speicherbereiche im Flash, in den einen schreibt der Controller die aktuellen Portzustände rein, die meine C++ Oberfläche ausließt und mir auf dem Monitor anzeigt.
Den zweiten Speicherbereich beschreibe ich über meine C++ Oberfläche, lese sie mit dem Controller aus und schalte somit die Funktionen des Controllers um.

1.) Wird das so funktionieren?
2.) Gibt es einfachere Möglichkeiten?
3.) Wer hat erfahrung mit sowas und kann mir tips geben?

Für ein kleines Beispielprogramm für die Kommunikation wäre ich sehr dankbar.

Danke schon mal im voraus.

batti112
13.04.2006, 18:37
Hi!
Mit welchen OS arbeitest du denn?

mfG

Batti

strunz
13.04.2006, 19:18
Meinst du PC?

WinXP pro
AMD Athlon XP3700

PasstScho
13.04.2006, 19:21
Hallo,
Klar funktioniert das.
Ist nen alter Hut...
Keine Ahnung was ich dir da noch groß sagen soll....

MfG Alex

strunz
13.04.2006, 19:32
Tja, wenn man´s schon paar mal gemacht hat ist das ein alter hut :-)

Aber ich weiss zB. nicht wie ich die Kommunikation zustande bekomme, ich meine Baud, Parity bit, Stop bit usw. wie realisiere ich das im C++ Code???

PasstScho
13.04.2006, 21:25
Hi,
Das kannst du dir unter WinXP voll sparen.
Da gibts die WinApi Funktionen.
Damit kannst du den Com-Port öffnen, beschreiben und auslesen wie eine Datei.
Such mal hier im Forum.
Da solltest du schon einiges dazu finden.
MfG Alex

strunz
13.04.2006, 21:54
Achso, das hört sich ja nicht schlecht an.
Danke mal.
Hoffe ich komme zurecht...

NumberFive
14.04.2006, 07:30
https://www.roboternetz.de/phpBB2/viewtopic.php?t=16297

hier kannst du auch mal vorbei gucken.

Gruß

ceekay
14.04.2006, 12:13
Was für eine IDE verwendest du denn für dein PC Programm?

Also mir hat das hier weitergeholfen..
http://www.codeproject.com/system/cserialport.asp

strunz
14.04.2006, 23:24
Ich verwende noch garnichts, bin noch ganz am Anfang.
Aber ich werde mir eure Links mal ganz genau anschauen. Die sehen recht vielversprechend aus.

Danke euch für die Tipps.

strunz
18.04.2006, 18:30
Hallo Leute,
ich bins wieder. Inzwischen habe ich zwei Nächte damit verbracht nach einer Lösung für mein Problem zu suchen.
Ich drehe langsamm durch!

Könnte mir jemand bitte ein kleines C++Programm schreiben (mit Kommentaren) dass:
- den ComPort1 öffnet
- zwei HexZahlen (zB. 3F) zum Controller überträgt
- und denn ComPort wieder schliesst.

Dieses soll dann ausgeführt werden, wenn ich einen Button auf meiner Anwendersoftware betätige.

Das wäre wirklich net, ich bin wahrscheinlich zu doof um das selber hinzubekommen.

strunz
18.04.2006, 18:35
Achja, ich habe inzwischen auch mitbekommen, dass ich da anscheinnen eine dll datei dafür brauche. ich habe mir die "berümte" port.dll besorgt. Also würde mich eine Lösung hiermit auch schon zufriedenstellen.

PasstScho
19.04.2006, 00:27
Hallo,
Du brauchst keinen PortIO Treiber dafür.
Ich hab mal schnell google gefragt:
http://www.codeproject.com/system/chaiyasit_t.asp
http://www.lookrs232.com/com_port_programming/api_open_port.htm
http://www.geocities.jp/terukat/_geo_contents_/win/comm.html

Mit etwas denken kommt man schnell drauf.
Es steht ja auch hier im Forum schon recht oft.
Musst halt einfach mal suchen.

MfG Alex

strunz
19.04.2006, 01:27
Ok, so langsam macht es klick bei mir.
Es wird klarer, die Kommunikation steht jetzt mal grob.

Danke erstmal PasstScho.

strunz
19.04.2006, 09:32
JA, die Kommunikation funktioniert tatsächlich.

Gibt es jetzt ne möglichkeit die Input Pins meines Controllers auf HI oder Low über meine Anwensersoftware zu setzten?
Wenn ja wie muss der sendebefehl von meiner Oberfläche aussehen damit der Controller versteht was ich von ihm will?

Und genauso umgekehrt, was mus ich vom Controller an meine Anwendersoftware senden damit die weis welche Sensoren gerade Hi und welche Low sind?

Für Vorschläge wäre ich sehr dankbar!

Rage_Empire
19.04.2006, 09:34
ist doch ganz logisch einfach. du sendest mit deiner oberfläche ein zeichen. dein controler empfängt es unt tut etwas. so kannst du jedem zeichen einer tätigkeit zuordnen.

NumberFive
21.04.2006, 05:37
Wofür brauchst du die Port.dll ?

du machst doch seriale Komunikation oder ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcecoreos5/html/wce50conprogrammingserialconnections.asp

Last dich nicht irtieren das geht und windows auch so ach wenn bei dem Link CE drüber steht.

Gruß