Zitat Zitat von Bluesmash
für den empfang mit der software UART kann ich nur die version mit dem interrupt empfehlen... bin gerade an nem projekt indem ich es verwende...

hier ein kleiner auszug aus meinem code must ihn halt noch abändern für deinen prozi... wichtig ist einfach dass der port für den empfang an einem interrupt pin hängt... bei mir wird der anfang der zu empfangenen daten mit einer 1 erkannt...

Code:
Open "Comb.6:9600,8,n,1" For Input As #2

Config Int0 = Falling
On Int0 Int0_isr
Enable Int0

Enable Interrupts

do

loop

Int0_isr:

Temp = Inkey(#2)

      If Temp = 1 Then
            Temp = 0

            Servo1 = Waitkey(#2)
            Servo2 = Waitkey(#2)
            Speed = Waitkey(#2)
      End If
Return

gruss bluesmash

Hi,
wie wird das von dem anderen Controller angesteuert? Also wie sendest du die Bytes? Ich hab folgenden Code für den Servocontroller:
Code:
$regfile = "attiny2313.dat"                               
$crystal = 8000000                                          


Waitms 100


Config Servos = 4 , Servo1 = Portb.0 , Servo2 = Portb.1 , Servo3 = Portb.2 , Servo4 = Portd.6 , Reload = 10

Config Portb = Output
Config Portd.6 = Output


Config Int0 = Falling
On Int0 Int0_isr
Enable Int0


Enable Interrupts


Servo(1) = 100
Servo(2) = 100
Servo(3) = 100
Servo(4) = 100

Dim Temp As Byte
Dim New As Bit
Dim Servo_num As Byte
Dim Servo_pos As Byte

Open "Comd.2:9600,8,n,1" For Input As #2                     

Do
If New = 1 Then
 Servo(Servo_num) = Servo_pos
 New = 0
End If
Loop

Int0_isr:

Temp = Inkey(#2)

      If Temp = 1 Then
            Temp = 0

            Servo_num = Waitkey(#2)
            Servo_pos = Waitkey(#2)
            New = 1
      End If
Return
Und das is der Code von dem Controller, der dem Servocontroller die "Befehle" gibt:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Waitms 100


Do
Print 1
Print 1
Print 170

Wait 2

Print 1
Print 1
Print 70

Wait 2
Loop
End
Dadurch sollte der Servo sich immer vor und zurückdrehn. Allerdings bewegt er sich keinen Millimeter. Es muss am Soft-UART liegen, wenn ich den Servo direkt ansteuer gehts. Ich denke mal dass die "Print"-Befehle nicht in Ordnung sind.

Kann mir jemand helfen?

MfG