PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 Probleme beim empfangen mit Bascom



jojo150272-A
14.03.2008, 18:19
Hallo Leute,

ich habe mal wieder ein Problem.

Ich möchte Daten vom PC zum AVR 2561 übertragen
Atmael 2561 auf einem Display3000, DO72 mit Grafik-Display
Quarz 14.7456MHz
Uhrenquarz 32kHz

Aber ich weiß net richtig wie ?

Ich verwende das Hyperterminal und Bascom. Vom AVR senden zum PC kann ich. Aber wie mache ich das wenn ich auf dem AVR was empfangen möchte ? Ich will an den AVR die Uhrzeit "12:23:58" und das Datum "14.03.08" senden, sowie die Zahl "0" und "1".

Ich habe schon die befehle Input, Get verwendet, aber es ging nix.

Kann mir jemand helfen ?

O:) Gruß Jörg

BASTIUniversal
14.03.2008, 19:42
Hi!
Nächstes mal das ganze bitte im richtigen Forum posten!

Basti

python_rocks
14.03.2008, 20:46
Aber wie mache ich das wenn ich auf dem AVR was empfangen möchte ?
Hallo Jörg!

Vielleicht bringt dich dieses Beispiel schon weiter:
http://halvar.at/elektronik/rs232/

Und schau dir die Hilfe zu den dort aufgeführten Befehlen an.

mfg
Gerold
:-)

jojo150272-A
14.03.2008, 22:22
Hallo Gerold,

danke für Deine Nachricht. So hatte ich es aber schon mal versucht, es hat aber nicht funktioniert.
Ich hatte übersehn das nach
Print #1 , "Antwort: " ; S
ein Semikolon steht und ich es mit dem Komma immer wieder versucht habe und mich gewundert hatte wieso es nicht funktioniert.

Jetzt schreibt er alles wie gewünscht. Aber wie kann ich vom Hyperterminal gesendete Daten auch richtig empfangen. Wenn ich Daten sende empfängt er irgendeinen Müll. Ich möchte Uhr und Datum Formate empfangen.

nochmals vielen Dank

Gruß Jörg

jojo150272-A
18.03.2008, 12:17
Hallo Leute,

ich habe bei meinem Projekt mal wieder ein kleines Problem.

Ich möchte daten die ich über die RS232 Com2 einlese im eeprom speichern und sie dann wieder im AVR auslesen.

Das schreiben mache ich bis jetzt so:

A = 8
B = 2
Print #2 , "Datum eingeben"
Input #2 , S_val
Writeeeprom S_val , Z 'wobei Z für die Adresse der Daten steht
Z = Z + A
Print #2 , "Zeit eingeben"
Input #2 , S_val
Writeeeprom S_val , Z 'wobei Z für die Adresse der Daten steht
Z = Z + A
Print #2 , "Kanal eingeben"
Input #2 , S_val
Writeeeprom S_val , Z 'wobei Z für die Adresse der Daten steht
Z = Z + B

Mit Z zähle ich im Speicher rauf. Da ich 6 verschiedene Werte im EEprom speichern möchte und die immer wieder hintereinander habe ich dafür die Variablen A, B, C, D, E, F genommen, Meine Variablen haben teilweise unterschiedliche länge (A = 8, B = 2, C = 8, D = 3, E = 1, F = 3).

Ist das so ok ? Oder wie macht man es richtig ?

Es klappt aber ich habe da so meine bedenken das das wirkich pofesionell ist.

mfg Jörg Droß

PicNick
18.03.2008, 13:06
Du würdest dich wundern, was in professionellen Programmen so alles zu finden ist. :mrgreen:

Aber denk mal nach, was abläuft, wenn z.B. einer einen Tippfehler macht. Wenn er es bemerkt, muß er trotzdem erst alles fertigschreiben und dann wieder von vorne anfangen.
Da gäb's da noch verschiedene Checks auf plausibel oder Müll.
--- etc pp --

However, wenn es in der Form deinen Zwecken genügt, dann lass es.
Was Kunst ist, entscheidet der Künstler.

jojo150272-A
18.03.2008, 15:38
Hallo Robert,

ich will die Daten per Programm eingeben das in vb.net geschreiben wurde. Es übergiebt am Anfang die Längen für die Variablen. Danach werden erst die daten geschickt.

Ich will gerne eine richtige Struktur zum Datenspeichern haben. Aber ich kenne nur diese eine Möglichkeit die Adresse im EEprom anzugeben.

Gibt es noch eine bessere Möglichkeit ?

mfg Jörg

PicNick
18.03.2008, 16:17
Also, ich würde den Bereich im EERAM normal definieren. z.B

DIM E_Datum AS ERAM STRING * 8 ' länge, was du halt brauchst
DIM E_Zeit AS ERAM STRING * 8 ' länge, was du halt brauchst
DIM E_Kanal AS ERAM STRING * 8 ' länge, was du halt brauchst

Du kannst aber diese Felder nicht direkt beim "INPUT" angeben,
sondern mit z.B.
E_Datum = S_Val
transferieren.

Bascom macht dann zwar auch einen "Writeeram", logo, aber die Daten haben einen Namen und das mit der Adresse ist dann ein Problem vom Compiler.

jojo150272-A
18.03.2008, 16:51
Hallo Robert,

soweit habe ich es jetzt verstanden. Aber wie kann ich die Variablen den gezielt wieder auslesen ? Ich habe insgesamt 6 Variablen die ich hintereinander schreiben möchte. die 6 Variablen gehören zu einem Datensatz, ich möchte so ungefähr 30 Datensätze hintereinander eingeben um sie später wieder auslesen zu können.

Das reinschreiben macht ja dann der AVR von selbst. aber wie finde ich die Daten wieder. was muß ich denn AVR als Startadresse geben und vorallem wie ?


Hättest du ein Beispiel für mich ? Und wie kann ich den EEProm wieder löschen ?

mfg Jörg