PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenübertragung zwischen C-Control M-Unit und Atmega 8



TV FREAK
20.11.2007, 10:12
Hallo !
Ich habe da mal eine Frage zur Datenübertragung über die UART Schnittstelle zwischen einer C-Control M-Unit und einem Atmega 8.
Auf der M-Unit läuft ein kleines Testprogramm das einfach eine Variable von 10 bis 50 hochzählt. Diese Zahl möchte ich über den TXD Pin auf einen Atmega 8 übertragen. Auf dem Atmega 8 läuft ein kleines Programm um die empfangene Zahl auf einem Display anzeigen zu können. Irgenwie kommen da aber nur falsche Zahlen an.
Ich habe schon alles versucht, auch das Timing habe ich schon auf beiden Prozessoren hin und her geschaltet aber nichts hat geklappt.
Wäre schön wenn mir jemand weiter helfen könnte.
Ich hänge mal beide Programme mit an.
Wie gesagt die Hardware ist sehr einfach aufgebaut. Der TXD Pin von der M-Unit hängt direkt an Pin PD0(RXD) am Atmega. Und wie gesagt es wird ja auch irgendwas übertragen. Am Display sehe ich zuerst die Zahl 146 und dann irgendwelche 3 stelligen Zahlen. ](*,)
Gruss tvfreak

Drifter2006
20.11.2007, 13:57
Hello TV FREAK,
Your problem could be because of a bug in the C-Control I v2.0 system.
The very first byte will not be sent over the UART because of this bug.
Try a PUT 0 in the top of your software like I listed below, maybe this will work.
Greetings,
Drifter2006





'--------------------------------------------------------------------------------
'-------------------------ZUWEISUNG DER EIN- UND AUSGAENGE ----------------------
'--------------------------------------------------------------------------------

define led port[1]



'--------------------------------------------------------------------------------
'-------------------------ZAHLEN KONVERTIERUNG FUER ANZEIGE ---------------------
'--------------------------------------------------------------------------------

define zahl word



'---------------------------------------------------------------------------------
'----------------------------HAUPTROUTINE -------------------------------------
'---------------------------------------------------------------------------------

put 0 '<-NEEDED BECAUSE OF BUG IN C-CONTROL I V2.0'
#hauptroutine
for zahl = 10 to 50 step 1
led = 1
put zahl
pause 50
led = 0
pause 50
next zahl
goto hauptroutine

TV FREAK
21.11.2007, 09:12
Hallo Drifter2006 !

Ich habe die Änderung im Programm so durchgeführt wie du es gepostet hast. Es hat sich leider nicht verbessert ](*,) ](*,)

Gruss, tvfreak

Drifter2006
22.11.2007, 13:56
Hello TV FREAK,
I made one more change.
Greetings,
Drifter2006


'--------------------------------------------------------------------------------
'-------------------------ZUWEISUNG DER EIN- UND AUSGAENGE ----------------------
'--------------------------------------------------------------------------------

define led port[1]



'--------------------------------------------------------------------------------
'-------------------------ZAHLEN KONVERTIERUNG FUER ANZEIGE ---------------------
'--------------------------------------------------------------------------------

define zahl word



'---------------------------------------------------------------------------------
'----------------------------HAUPTROUTINE -------------------------------------
'---------------------------------------------------------------------------------

put 0 '<-NEEDED BECAUSE OF BUG IN C-CONTROL I V2.0'
#hauptroutine
for zahl = 10 to 50 step 1
led = 1
print zahl '<-DELETED PUT'
pause 50
led = 0
pause 50
next zahl
goto hauptroutine

TV FREAK
23.11.2007, 16:03
Hallo Drifter2006 !
Das habe ich auch schon ausprobiert den Befehl PUT durch PRINT zu ersetzen. Im Terminalprogramm bekomme ich dann auch die richtigen Werte angezeigt.
Ich denke der Fehler liegt in dem Atmega Programm. Da habe ich die richtigen Befehle noch nicht gefunden. Aber ich bin immer noch am probieren.

Gruss, tvfreak