Forum: Mikrocontroller und Digitale Elektronik Hyperterminal mit can


von udo m. (u_mathias)


Lesenswert?

hallo Spezis,

ich sende und empfange Can Bus Daten , dafür benutzte ich µC C515C und 
CanOe der Firma Vector.
Bis jetzt läuft alles, nur das Problem ist dass ich die Daten über 
Hyperterminal nicht hingekriegt habe.
Ich habe versucht mit printf aber geht immer noch nicht.

ich bin dankbar für jede Hilfe
von crazy horse (Gast)


Lesenswert?

Tja, wird an deinem Programm (unbekannt), deiner Hardware (unbekannt), 
dem Kabel (unbekannt) oder den Terminaleinstellungen (unbekannt) liegen,
von udo m. (u_mathias)


Lesenswert?

ich habe ein anderes Programm auf µC gespielt, es tut was aber mein 
can-Programm nicht.
d.h. hardware, kabel, terminaleinstellung alles ok

es bleibt dann nur das Programm

eigentlich es läuft mit dem CanOe das Senden und empfangen aber mit 
Terminal nicht, wenn du mal Auszug aus dem Programm haben willst gebe 
ich dir
von Falk B. (falk)


Lesenswert?

Kleiner Tip: Netiquette.
von udo m. (u_mathias)


Lesenswert?

Falk Brunner schrieb:
> Kleiner Tip: Netiquette.

was meinst du mit deinem Beitrag, brauchst du mehr Details oder was?
von Ratgeber (Gast)


Lesenswert?

Leute, die sich noch nicht einmal vernünftig ausdrücken können, sollten 
erst recht einen weiten Bogen um die Technik machen...
von Rolf Magnus (Gast)


Lesenswert?

udo mathias schrieb:
> Falk Brunner schrieb:
>> Kleiner Tip: Netiquette.
>
> was meinst du mit deinem Beitrag, brauchst du mehr Details oder was?

Schau dir die Informationen, die du angegeben hast, mal an, und dann 
überleg dir, ob man damit was anfangen kann. Deine Frage liest sich in 
etwa so:

Mein Auto funktioniert nicht. Ich hab die Straße schon überprüft, und 
die ist in Ordnung, aber trotzdem geht das Auto nicht. Woran liegt das?
von udo m. (u_mathias)


Lesenswert?

also vielen Dank.
Ich gebe euch mehr Details
ich sende Can Daten mit dem CANoe zum µC, und mit dem Hyperterminal soll 
ich den kompletten Frame (ID DLC und Data) lesen.
Aber ich gehe davon aus dass im Programm was fehlt.

Ich bin sehr dankbar für jede Hilfe
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ja, genau, Du hast es erfasst.
In dem Programm fehlt was und zwar in Zeile 42.
von udo m. (u_mathias)


Angehängte Dateien:

Lesenswert?

Markus Müller schrieb:
> Ja, genau, Du hast es erfasst.
> In dem Programm fehlt was und zwar in Zeile 42.

Ich meine ernst. Bitte ich brauche Hilfe
ich habe schon mehrere Möglichkeiten versucht umsonst
ich kann sagen dass ich nicht fit in der Programmierung bin.
Ich habe die UART-Initialisierung gemacht
von me (Gast)


Lesenswert?

Kannst Du mal bitte Dein Problem komplett beschreiben? Ich vermute 
folgendes:

[Glaskugelmodus AN]

1. Du hast einen uC, welcher zum einen mit einem CAN-Bus kommuniziert 
und zum anderen über eine serielle Schnittstelle mit einem PC verbunden 
ist.

2. Die Kommunikation mit dem CAN Bus funktioniert.

3. Die Kommunikation mit dem PC über die serielle Schnittstelle 
funktioniert nicht.

Frage: An welcher Stelle in Deinem Programm schreibst Du die Daten, die 
vom CAN-Bus gelesen wurden und an den PC gesendet werden sollen, in den 
Tx-Puffer der seriellen Schnittstelle auf dem uC?

[Glaskugelmodus AUS]
von udo m. (u_mathias)


Lesenswert?

me schrieb:

> Frage: An welcher Stelle in Deinem Programm schreibst Du die Daten, die
> vom CAN-Bus gelesen wurden und an den PC gesendet werden sollen, in den
> Tx-Puffer der seriellen Schnittstelle auf dem uC?
>
Eigentlich muss ich die Daten vom CAN Bus in dem TX-Puffer der Seriellen 
Schnittstelle auf dem µC

Es geht darum, dass ich die CAN Daten auf dem Hyperterminal angezeigt 
bekomme
von me (Gast)


Lesenswert?

Sind folgende Annahmen richtig?

- Dein Gerät ist über eine Schnittstelle mit einem CAN-Bus verbunden.

- Dein Gerät kann Daten von dem CAN-Bus lesen.

- Dein Gerät ist über eine serielle Schnittstelle mit einem PC 
verbunden.

- Auf dem PC läuft Hyperterminal. Mit Hyperterminal möchtest Du die 
Daten angezeigt bekommen, die Dein Gerät vom CAN-Bus liest.

- Dein Problem ist aber, das Hyperterminal nichts anzeigt.



Wenn alle Annahmen korrekt sind:

- Gibt es eine Stelle in dem Programm in Deinem Gerät, an der die Daten 
vom CAN-Bus an den PC gesendet werden?
von udo m. (u_mathias)


Angehängte Dateien:

Lesenswert?

me schrieb:
> Sind folgende Annahmen richtig?
>
> - Dein Gerät ist über eine Schnittstelle mit einem CAN-Bus verbunden.
>
> - Dein Gerät kann Daten von dem CAN-Bus lesen.
>
> - Dein Gerät ist über eine serielle Schnittstelle mit einem PC
> verbunden.
>
> - Auf dem PC läuft Hyperterminal. Mit Hyperterminal möchtest Du die
> Daten angezeigt bekommen, die Dein Gerät vom CAN-Bus liest.
>
> - Dein Problem ist aber, das Hyperterminal nichts anzeigt.
>
>
>
> Wenn alle Annahmen korrekt sind:
>
> - Gibt es eine Stelle in dem Programm in Deinem Gerät, an der die Daten
> vom CAN-Bus an den PC gesendet werden?

natürlich ist µC verbunden mit dem PC über serielle Schnittstelle
der µC kann die CAN Daten lesen mit dem CANoe

aber das große Problem ist dass ich nicht weiss wie ich diese Stelle 
programmiere, ich gegoogelt aber nichts gefunden
von Winnie (Gast)


Lesenswert?

Setz endlich deinen verf.... Code hierein, komplett, nicht irgendwelche 
Bröckchen.
Immer wieder sagen dir die Leutchen: ohne Sourcecode geht es nicht - das 
interessiert dich überhaupt nicht.
Wenn du das aber partout nicht willst, musst du dein Problem eben 
alleine lösen :-(
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Setz endlich deinen verf.... Code hierein, komplett, nicht irgendwelche
>Bröckchen.

Bist Du dir sicher?
Ich habe ihm das jetzt nicht schreiben wollen, denn der ballert das 
Forum sonst mit Screenshots voll g
von me (Gast)


Lesenswert?

udo mathias schrieb:
> aber das große Problem ist dass ich nicht weiss wie ich diese Stelle
> programmiere, ich gegoogelt aber nichts gefunden

Bei den uCs, die ich bisher programmiert habe, war es immer so:
Die serielle Schnittstelle des uCs beinhaltet einen Sende- und einen 
Empfangspuffer; wo sich diese auf Deinem uC befinden, steht in dem 
Datenblatt zu Deinem uC.

Im einfachsten Fall reicht es, die Daten, die über die serielle 
Schnittstelle zu versenden sind, byteweise in den Sendepuffer zu 
schreiben - genau so, wie man in eine normale Variable schreibt.

Wenn man aber mehr als ein Byte an Daten senden will, benötigt man ein 
Handshake mit der seriellen Schnittstelle des uCs - dafür stellt dieser 
i.d.R. weitere Informationen wie "SENDEN_IST_ABGESCHLOSSEN" zur 
Verfügung. Das Programm muss nun darauf achten, dass nur Daten in den 
Sendepuffer geschrieben werden, wenn die vorhergehende Sendung bereits 
abgeschlossen wurde.

Eine entsprechende Sequenz könnte so aussehen:
1
do {
2
3
  if {SENDEN_IST_ABGESCHLOSSEN == TX-STATUS_DER_UC_UART) {
4
    
5
    TX_PUFFER = NAECHSTES_DATENBYTE;
6
  }
7
8
} while (WEITERE_DATEN_ZUM_SENDEN_VORHANDEN);
von me (Gast)


Lesenswert?

Achja: dieser Link wird Dir zum Verständnis helfen: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
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.