PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART sendet nur Mist...



hacker
11.01.2006, 18:56
Hi,

mein Problem ist dieser Code hier:


$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600



Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinc.5 = Output
Config Pinc.4 = Output
Config Pinc.3 = Output
Config Pinc.2 = Output


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1




Dim Task As String * 20
Dim Tasklistcounter As Integer
Dim Tasklistanzahl As Integer
Dim Tasklist(2) As String * 20

Dim Datenstring As String * 20


Dim Geschwindigkeit As Integer






Dim Motoraktiv As Bit
Dim Beschleunigen As Bit
Dim Bremsen As Bit




Const Mingeschwindigkeit = 255
Const Maxgeschwindigkeit = 0





Enable Interrupts






Tasklist(1) = "rs232input"
Tasklist(2) = "Motorsteuerung"


Tasklistanzahl = 2
Tasklistcounter = 1




Do

Incr Tasklistcounter
If Tasklistcounter > Tasklistanzahl Then
Tasklistcounter = 1
End If

Task = Tasklist(tasklistcounter)
Gosub Befehlauswertung

Loop
End

Befehlauswertung:

Select Case Task

Case "rs232input" :
Gosub Rs232input

Case "Motorsteuerung" :
Gosub Motorsteuerung


End Select

Return



Sensoren:

Return


Motorsteuerung:


Return


Rs232input:

'Input Datenstring Noecho
Print "Hello!";

Return


Vor:

Portc.5 = 0 'vorwärts rechter Motor
Portc.4 = 1

Portc.3 = 0 'vorwärts linker Motor
Portc.2 = 1

Return

Zurueck:

Portc.5 = 1 'rückwärts rechter Motor
Portc.4 = 0

Portc.3 = 1 'rückwärts linker Motor
Portc.2 = 0

Return

Links:

Portc.3 = 0
Portc.2 = 0

Return

Rechts:

Portc.5 = 0
Portc.4 = 0

Return

Halt:

Portc.5 = 0
Portc.4 = 0
Portc.3 = 0
Portc.2 = 0


Return

Mit ihm empfang ich über die UART nur Mist. Vorneweg: Baudrate ist richtig eingestellt, Fuses auch! Mit einem Testprogramm, was nur immer sendet klappts auch einwandfrei...nur hier nicht. Ich find den Fehler nicht. nach meinem Geschmack ist das alles richtig O:)

Wär nett, wenn ihr mir helfen könnt.

Gruss hacker

PicNick
11.01.2006, 19:06
MoMent: So, wie's ist macht der Kollege eigentlich nur "print "hello"" und sonst nix.
Und dú sagst, das "hello" kann man nicht lesen ?

hacker
11.01.2006, 19:08
Jo, der sollte eigentlich immer hintereinander "hello!" bringen. Man kann es nicht entziffern...geschwige denn erraten..man erkennt einfach nix ^^..aber es kommt schon mehrmals...bzw. die ganze Zeit.

PicNick
11.01.2006, 19:13
Füg' sicherheitshalber vorne
$HWSTACK = 32
$SWSTACK = 64 oder sowas ein.
Vielleicht geht ihm der Stack aus
Weil sonst könnt ja nur Baudrate, Fuse...... blabla falsch sein.

Ja, durch das Semikolon schreibt er alle Hellos in eine Zeile ?


EDIT: Mein Weib ruft mich. Bis Morgen !

hacker
11.01.2006, 19:28
Ach PicNick...du hast mal wieder Recht.. =D> Dank dir!!! Jetzt funktioniert alles bestens...

Gruss hacker