Forum: PC-Programmierung 89c51ed2 programmierung mit c++


von Peter M. (michaelvolkmer)


Lesenswert?

hi leute

habe eine techniker arbeit vor mir anstehen wo es um die programmierung 
mittels
borlad c++ builder6 darum geht, eine distanzmessanlage durch 
srf04-sensor (ultraschall-sensor)zu entwickeln, welche die distanz 
grafisch auf einer objektorientierten oberfläche ausgibt.
bin nun auf der suche nach geeigneter beispielsoftware, guten und 
verständlichen büchern, links usw........!!!!!
kann mir hierbei jemand helfen?
die hardware usw ist schon in gange , nur die programmierung über die 
rs232 schnittstelle am pc zu controller ist mir ein rätsel!
und vor allem wie wird die scheiße über die oberfläche mit c++ gesteuert 
und auch angezeigt????????????????? :-(
über alle einfälle, ideen, links und nützliche tipps wäre ich euch sehr 
verbunden.

mit freundlichen grüßen
michael

von Ralf (Gast)


Lesenswert?

Es gibt kein C++ für µC, nur C...

> die hardware usw ist schon in gange , nur die programmierung über die
> rs232 schnittstelle am pc zu controller ist mir ein rätsel!

Wo genau liegt das Problem? Bekommst du die Kommunikation zwischen µC 
und PC nicht hin, oder kannst du mit den Daten vom µC nix anfangen?

> und vor allem wie wird die scheiße über die oberfläche mit c++ gesteuert
> und auch angezeigt?

Du musst die empfangenen Daten visuell darstellen, es gibt viele 
Möglichkeiten. Kannst z.B. ein Diagramm-Object verwenden, und die Daten 
als Kurve ausgeben. Oder ein Tabellen-Object. Du musst die Daten halt 
umwandeln.

Wenn du die Probleme genauer spezifizieren kannst, kann dir besser 
geholfen werden...

Ralf

von Aufreger deluxe (Gast)


Lesenswert?

> Es gibt kein C++ für µC, nur C...

Es gibt doch avr-c++.

von Michael Volkmer (Gast)


Lesenswert?

das problem ist, die empfangenen daten visuell darzustellen, so wie du 
es gesagt hast.
einerseits muss die keil software die sensoren ansprechen, das ergebniss 
wird gespeichert und dann an die rs232 schnittstelle gesendet.
dann diese daten auf die oberfläche zu bekommen und dieses dann visuell 
darstellen, das ist mein verständniss problem hierbei.
es sollte ein balken sein der die distanz zum objekt anzeigt und noch 
ein zahlenwert zu sehen sein.
wie es bei herkömmlichen distanzmessern z.b. im auto zu sehen ist.
klingt einfach, ist aber für mich für den anfgang schwer umzusetzen.
wie erstellt man die oberfläche in c?
:-(
wie ist es möglich, einen sich beweglichen balken mit den daten zu 
füttern, sodass dieser sich bewegt?

von Ralf (Gast)


Lesenswert?

Aha, jetzt wird es klarer...

> einerseits muss die keil software die sensoren ansprechen, das ergebniss
> wird gespeichert und dann an die rs232 schnittstelle gesendet.

Funktioniert das schon? Also das mit dem Senden bzw. empfangen?!?

> dann diese daten auf die oberfläche zu bekommen und dieses dann visuell
> darstellen, das ist mein verständniss problem hierbei.
> es sollte ein balken sein der die distanz zum objekt anzeigt und noch
> ein zahlenwert zu sehen sein.

Da würde ich mal gucken, ob es ein Balkenobject für C++ gibt.
Es kann sein, dass du verschiedene Balken-Objects findest, ich habe 
folgende Varianten bereits gesehen:

1. Das Object wird mit einer Prozent-Angabe gefüttert, und stellt diese 
dar. Das bedeutet, du musst die Prozent selber ausrechnen.

2. Das Object bekommt den unteren und den oberen Grenzwert mitgeteilt, 
und wird mit einem weiteren Wert gefüttert, aus dem sich das Object die 
Prozentangabe selber rausrechnet. --> Eher für dich geeignet?

Allerdings habe ich diese Objects vor Jahren bei einem VB-Programm 
gesehen, nicht selbst verwendet. Weiss also nicht, ob es das auch für 
C++ gibt...

Und für die Erstellung der Oberfläche kann ich dir leider für C++ nicht 
weiterhelfen, ich hab immer VB verwendet, da dort das 
Oberflächen-Erstellen VIEL einfacher sein soll als in C++ (hab ich 
zumindest gehört).

Ralf

von Erhard henkes (Gast)


Lesenswert?

C++ und µC passt schon. Es gibt nur einiges zu beachten:

1) Makefiles selbst basteln (bzw. mit AVR Studio erstellen, exprotieren, 
manipulieren, als externes Makefile wieder einbinden)

2) new und delete erstezen:
// Ersatz für new, new[], delete und delete[] der fehlenden 
C++-Standard-Bibliothek
void* operator new      (size_t size) { return malloc(size); }
void* operator new[]    (size_t size) { return malloc(size); }
void  operator delete   (void* ptr)   { free(ptr); }
void  operator delete[] (void* ptr)   { free(ptr); }

3) Bei abstrakten Klassen pure virtual abfangen:
// pure virtual wird dennoch ausgeführt:
extern "C"{
void __cxa_pure_virtual() {} }

Dann geht das schon. Compiler ist avr-g++.exe.

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.