-         

Ergebnis 1 bis 5 von 5

Thema: Bascom & RN-Control Demo funzt nicht

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2010
    Ort
    Löhne
    Alter
    26
    Beiträge
    17

    Bascom & RN-Control Demo funzt nicht

    Anzeige

    Bin gerade angefangen mein nigelnagelneues RN-Control mit Bascom zu programmieren und wollte das mitgelieferte Demoprogramm draufbrennen, aber folgenden fehler bekomme ich beim Compilieren (Quellcode wurde nicht verändert)

    Code:
    '###################################################
    'rncontroltest.BAS
    'für
    'RoboterNetz Board RN-Control ab Version 1.1
    'Das neue preiswerte Controllerboard zum Experimentieren
    
    ' Achtung:
    ' Diese Demo ist mit Bascom Compiler 1.11.7.7 getestet
    
    '
    '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 LEDs anzeigen. Am I2C-Bus
    '          darf in diesem Moment nichts angeschlossen sein
    ' Taste 4: Zeigt analoge Messwerte an allen Port A PINs über RS232 an
    ''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an
    
    
    ' Sehr 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
    '#######################################################
    
    
    Declare Sub Batteriespannung()
    Declare Sub Motortest()
    Declare Sub Lauflicht()
    Declare Sub Showporta()
    Declare Sub Showdigitalporta()
    Declare Function Tastenabfrage() As Byte
    
    
    $regfile = "m32def.dat"
    ' bei Mega 16 $regfile = "m16def.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
    Print
    Print "**** RN-Control 1.4 *****"
    Print "Das neue Experimentier- und Roboterboard"
    Print "Weitere passende Zusatzboards bei www.robotikhardware.de"
    Print
    Do
    
    
    
    
       Taste = Tastenabfrage()
       If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                Call Batteriespannung    'Taste 1 Zeigt Bateriespannung über RS232 an
             Case 2
                Call Motortest           'Taste 2 Motoren beschleunigen und abbremsen
             Case 3
                Call Lauflicht           'Einige Male Lauflicht über LEDs anzeigen.
                                         'Am I2C-Port darf in diesem Moment nichts angeschlossen sein
             Case 4
                Call Showporta           'Zeigt Messwerte an allen Port A PINs
             Case 5
                Call Showdigitalporta    'Zeigt digitalen I/O Zustand von PA0 bis PA5 an
    
    
    
          End Select
          Sound Portd.7 , 400 , 500      'BEEP
       End If
    
       Waitms 100
    Loop
    
    End
    
    
    
    '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 beträgt: " ; Volt ; " Volt"
    
    End Sub
    
    
    'Testet Motoren und Geschwindigkeitsreglung
    Sub Motortest()
       'Linker Motor ein
       Portc.6 = 1                          'bestimmt Richtung
       Portc.7 = 0                          'bestimmt Richtung
       Portd.4 = 1                          'Linker Motor EIN
    
       'Rechter Motor ein
       Portb.0 = 1                          'bestimmt Richtung rechter Motor
       Portb.1 = 0                          'bestimmt Richtung rechter Motor
       Portd.5 = 1                          'rechter Motor EIN
    
    
       I = 0
       Do
          Pwm1a = I
          Pwm1b = I
          Waitms 40
          I = I + 5
       Loop Until I > 1023
    
       Wait 1
       Do
          Pwm1a = I
          Pwm1b = I
          Waitms 40
          I = I - 5
       Loop Until I < 1
       Pwm1a = 0                            'Linker Motor aus
       Pwm1b = 0                            'rechter Motor aus
    End Sub
    
    
    ' Einige Male Lauflicht über LEDs anzeigen. Am I2C-Port darf in diesem
    ' Moment nichts angeschlossen sein
    Sub Lauflicht()
    
       Config Portc = Output
       Portd = 0
       For N = 1 To 10
          For I = 0 To 7
             Portc.i = 0
             Waitms 100
             Portc.i = 1
          Next I
       Next N
       Config Portc = Input
    End Sub
    
    
    'Zeigt die analogen Messwerte an Port A an
    Sub Showporta()
    Local Ws As Word
    
       Config Porta = Input
       For I = 0 To 5                        ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
          Porta.i = 1
       Next I
    
       Print
       Print "Ermittelte Messwerte an Port A:"
       For I = 0 To 7                        ' Alle Eingänge inkl. messen
          Start Adc
          Ws = Getadc(i)
          Volt = Ws * Ref
          Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
       Next I
    End Sub
    
    
    'Zeigt den Zustand einiger freier I/O von Die Analogen Messwerte An Port A An
    Sub Showdigitalporta()
    Local Zustand As String * 6
       Config Porta = Input
       For I = 0 To 5                        ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
          Porta.i = 1
       Next I
    
       Print
       Print "Ermittelter I/O Zustand Port A:"
       For I = 0 To 5                        ' Alle Eingänge inkl. messen
          If Pina.i = 1 Then
             Zustand = "High"
          Else
             Zustand = "Low"
          End If
          Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand
       Next I
    End Sub

    Fehlermeldung:
    Line 130 : ADC_MUX entry not found in DAT file , in file:.......
    das gleiche in Line 165 nochmal
    und error 229 (line 0) END Sub or End Function expectet [>1]


    Erfahrung in Basic Programmierung ist für mich kein neuland Bascom & AVR schon.

    danke und gruß
    Lineage

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Lineage,
    welche Bascom Version hast du?
    In meiner 1.11.9.8 kompiliert er ohne Probleme.
    Die angemeckerte Zeile
    Start ADC
    ist eh nicht mehr notwendig, außer du willst den ADC auch mal abschalten.
    Der Fehler in 229 ist wahrscheinlich ein Folgefehler.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2010
    Ort
    Löhne
    Alter
    26
    Beiträge
    17
    Habe die selbe Bascom Version
    ....habe die "Start ADC" zeilen gelöscht.....die fehler bleiben xD

    vielleicht compiler einstellungen oder so?

    habe nichts verändert (sprich "Installationszustand")

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2010
    Ort
    Löhne
    Alter
    26
    Beiträge
    17
    Hab ein bisschen rumgesucht und habe den verdacht das meine M32def.dat fehlerhaft ist.
    kann mir jemand seine zuschicken damit ich diese Testen kann?

    gruß
    Lineage

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2010
    Ort
    Löhne
    Alter
    26
    Beiträge
    17
    Habe einmal Alles Neu Installiert
    Bascom Version 1.11.8.7 (von Robotikhardware CD)
    AVR Studio 4

    jetzt geht alles Ohne probleme

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •