hi,

bei der Funkübertragung mit UART von der Funksteuerung zum Roboter ist sehr langsam, es kommt eine Verzögerung von etwa 1Sekunde zustande
liegt es vielleicht daran , das ich alles ohne Interrupts programmiert habe ?
hier mal grob der Verlauf vom Programm:
- der chip von der Funksteuerung emfängt einen tastendruck
- sendet an via UART mit dem Print-Befehl "1" oder "2" (sonst sendet er immer "0" )
- mit der Funkplatine und Easyradio von robotikhardware.de wird das programm per Funk übertragen
- der Chip vom Roboter empfängt die Daten und steuert damit die Motoren

hier der Code von der Fernsteuerung:
Code:
'-------------------------------------------------------------------------------
'-------------- Roboter Projekt - Funkfernsteuerung ----------------------------
'-------------------------------------------------------------------------------

$regfile = "m32def.dat"                                     'AT Mega32
$crystal = 8000000                                          'Quarz: 8MHz
$baud = 19200                                               'Baudrate 19200

'---------------------------------Pin setzten-----------------------------------

'Ausgänge und Eingänge festlegen
' 0 = Eingang ;1 = Ausgang
 Ddra = &B11110000                                          'Pin PA 0-3 auf Input setzten
 Porta = &B00001111                                         'PullUp von PA 0-3

'-------------------------------------------------------------------------------
'-----------------------Main Loop-----------------------------------------------
'-------------------------------------------------------------------------------

  Do

  '= 0 Input

   If Pina.0 = 0 Then
      Print "1"
   Elseif Pina.1 = 0 Then
      Print "2"
   Elseif Pina.2 = 0 Then
      Print "3"
   Elseif Pina.3 = 0 Then
      Print "4"
   Else
      Print "0"
   End If

    'Wait 1                                                  '1 Sekunde warten

  Loop
End
hier der Code vom Roboter:
Code:
'-------------------------------------------------------------------------------
'-------------- Roboter Projekt - Funkfernsteuerung ----------------------------
'-------------------------------------------------------------------------------

$regfile = "m32def.dat"                                     'AT Mega32
$crystal = 8000000                                          'Quarz: 8MHz
$baud = 19200                                               'Baudrate 19200

'---------------------------------Pin setzten-----------------------------------

'Ausgänge und Eingänge festlegen
' 0 = Eingang ;1 = Ausgang
 Ddra = &B11111000                                          'Pin PA 3-7 auf Output setzten
 Porta = &B00000111                                         'PullUp von PA 0-2 aktivieren

 Ddrb = &B00000001                                          'Pin PB 0 auf Output setzten

'---------------------------------Variablen Deklarieren-------------------------

 Dim I As Byte                                              'Empfangene Daten werden in dieser Variable gespeichert

'-------------------------------------------------------------------------------
'-----------------------Main Loop-----------------------------------------------
'-------------------------------------------------------------------------------

  Do

  '= 1 Kein Input
  '= 0 Input

'----------------------------------Motoren einschalten--------------------------

Porta.3 = 1                                                 'Motor Rechts einschalten
Porta.6 = 1                                                 'Motor Links einschalten

'----------------------------------Empfangene Daten auswerten-------------------

 If Usr.rxc = 1 Then                                        'Wenn Byte empfangen wird...
    I = Udr                                                 'Byte aus UART auslesen
    Select Case I
'----------------------------------------------- wenn keine Taste gedrückt wird
      Case "0"
         Porta.4 = 0                                        'vorwärts rechts
         Portb.0 = 0                                        'vorwärts links
         Porta.5 = 0                                        'rückwärts rechts
         Porta.7 = 0                                        'rückwärts links
'----------------------------------------------- vorwärts fahren
      Case "1"
         Porta.4 = 1                                        'vorwärts rechts
         Portb.0 = 1                                        'vorwärts links
         Porta.5 = 0                                        'rückwärts rechts
         Porta.7 = 0                                        'rückwärts links
         I = "0"
'----------------------------------------------- rückwärts fahren
      Case "2"
         Porta.4 = 0                                        'vorwärts rechts
         Portb.0 = 0                                        'vorwärts links
         Porta.5 = 1                                        'rückwärts rechts
         Porta.7 = 1                                        'rückwärts links
'----------------------------------------------- auf IR umstellen , wenn nicht empfangen wird
      Case Else

    End Select
  End If

  I = "0"
  Print I

  Loop
End
THX 4 HELP

ps. ich vermute mal , das es vielleicht daran liegt , das ich keine Interrupts verwende