so, habs jetzt mit einer goto - Anweisung hinbekommen:

Code:
'###################################################
'rncontroltest.BAS
'für
'RoboterNetz Board RN-Control ab Version 1.1
'Das neue preiswerte Controllerboard zum experimentieren
'
'Aufgabe:
' Dieses testprogramm testet gleich mehrere Eigenschaften auf dem Board
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Zeigt Batteriespannung über RS232 an
' Taste 2: Angeschlossene Motoren beschleunigen und abbremsen
' Taste 3: Einige male Lauflicht über LED´s anzeigen. Am I2C-Bus
'          darf in diesem Moment nichts angeschlossen sein
' Taste 4: Zeigt analoge Messwerte an allen Port A PIN´s über RS232 an
''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an


' Ser gut kann man aus dem Demo auch entnehmen wie Sound ausgegeben wird,
' wie Tasten abgefragt werden und wie Subroutinen und Funktionen angelegt werden

'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'#######################################################



Declare Sub Batteriespannung()
Declare Sub Fehler()
Declare Function Tastenabfrage() As Byte


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32


Dim I As Integer
Dim N As Integer
Dim Ton As Integer

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung

Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein


Const Ref = 5 / 1023                                        'Für Batteriespannungsberechnung

Dim Taste As Byte
Dim Volt As Single

' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output                                      'Linker Motor Kanal 1
Config Pinc.7 = Output                                      'Linker Motor Kanal 2
Config Pind.4 = Output                                      'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output                                      'Rechter Motor Kanal 1
Config Pinb.1 = Output                                      'Rechter Motor Kanal 2
Config Pind.5 = Output                                      'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8





I = 0
Sound Portd.7 , 400 , 450                                   'BEEP
Sound Portd.7 , 400 , 250                                   'BEEP
Sound Portd.7 , 400 , 450                                   'BEEP

'-------------------------------------------------------------------------------

Do


  Main:

  Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste
         Case 1
            Call Batteriespannung                           'Taste 1 Zeigt Bateriespannung über RS232 an
         Case 2
            Call Fehler                                     'Taste 2 Motoren beschleunigen und abbremsen
         Case 3
            Goto Leds                                       'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
         Case 4
            Call Fehler                                     'Zeigt Messwerte an allen Port A PIN´s
         Case 5
            Call Fehler                                     'Zeigt digitalen I/O Zustand von PA0 bis PA5 an



      End Select
      Sound Portd.7 , 400 , 500                             'BEEP
   End If

   Waitms 100





Loop

End

Leds:
      Config Portc = Output

            Portc.0 = 0
            Portc.1 = 1
            Portc.2 = 0
            Portc.3 = 1
            Portc.4 = 0
            Portc.5 = 1
            Portc.6 = 0
            Portc.7 = 1

            Sound Portd.7 , 400 , 450                       'BEEP
            Sound Portd.7 , 400 , 250                       'BEEP
            Sound Portd.7 , 400 , 450                       'BEEP

      Return



'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word

   Tastenabfrage = 0
   Ton = 600
   Start Adc
   Ws = Getadc(7)
   'Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
   If Ws < 500 Then
      Select Case Ws
         Case 400 To 450
            Tastenabfrage = 1
            Ton = 550
         Case 330 To 380
            Tastenabfrage = 2
            Ton = 500
         Case 260 To 305
            Tastenabfrage = 3
            Ton = 450
         Case 180 To 220
            Tastenabfrage = 4
            Ton = 400
         Case 90 To 130
            Tastenabfrage = 5
            Ton = 350
         'Case Else
              'Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
      End Select
      Sound Portd.7 , 400 , Ton                             'BEEP

   End If

End Function



'Diese Unterfunktion zeigt Batteriespannung an
Sub Batteriespannung()
Local W As Word
   Start Adc
   W = Getadc(6)
   Volt = W * Ref
   Volt = Volt * 5.2941
   Print "Die aktuelle Spannung betraegt: " ; Volt ; " Volt"

End Sub


Sub Fehler()

Print "Nicht verfügbare Funktion!"

End Sub

lg
ikarus_177