- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 7 von 7

Thema: Bogenampel mit Bascom, Controller macht garnichts

  1. #1
    Neuer Benutzer
    Registriert seit
    11.06.2007
    Ort
    bei Mainz
    Alter
    35
    Beiträge
    3

    Bogenampel mit Bascom, Controller macht garnichts

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Robotiker,

    ich bin uC Einsteiger, hab kaum Erfahrung mit Basic. In Delphi hingegen bin ich relativ fit und hab das Problem da auch schon umgesetzt.
    Ich vermute dass sich in meinem Code vllt ein formaler Fehler eingeschlichen hat den ich nicht finde.
    Wär nett wenn ihr mal drüberschauen könntet, warscheinlich fällt euch sofort was ins Auge.
    Ich hab mit gleichen Compiler-Einstellungen ein anderes selbstgeschriebenes Programm übertragen, das klappt wunderbar.

    Was das Programm tun soll:
    Es soll eine Ampel gesteuert werden die den Schiessablauf bei einem Bogenturnier regelt. Nach bestimmten Zeiten wird geschaltet, es kann aber auch duch drücken einer Taste weiter geschaltet werden, falls alle Schützen vorzeitig fertig sind.

    Vom Compiler angezeigte Fehler:
    Error: 242 Line: 48 Source cariable does not match target variable[0]
    Error: 35 Line: 50 3 parameters expected
    Error: 44 Line: 50 2 variables expected
    Error: 124 Line: 0 LOOP expected

    Also nun mein Quelltext:
    Code:
    'Bogenampel von Niclas Müller (SC Hahnheim)
    Declare Function Tastenabfrage() As Byte
    
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    
    
    Dim Taste As Byte
    Dim Ton As Integer
    Dim I As Integer
    Dim Zustand As Word
    Const Wartent = 5
    Const Gruent = 10
    Const Gelbt = 5
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    
    Config Portc = Output
    'For I = 0 To 7
    '   Portc.i = 1
    'Next I
    Rot Alias Portc.0
    Gelb Alias Portc.1
    Gruen Alias Portc.2
    Config Portd.7 = Output
    Config Adc = Single , Prescaler = Auto
    Config Porta.7 = Input
    
    
    
    Do
    Rot = 0
    Gelb = 1
    Gruen = 1
    Taste = Tastenabfrage()
       If Taste = 1 Then
          Waitms Wartent                                        'Warten
          Rot = 1
          Gruen = 0
       Do                                                       'AB schiesst
          Waitms 100
          Taste = Tasetnabfrage()                     'Line 48
    
          If I =(gelbt * 10)                                'Line 50
             Then
             Gruen = 1
             Gelb = 0
          End If
    
          If Taste = 1
             Then
             I =(gruent * 10)
          End If
          I = I + 1
       Loop Until I >(gruent * 10)
          Gruen = 1
          Gelb = 1
          Rot = 0
          Waitms Wartent                                        'Warten
          Rot = 1
          Gruen = 0
    
       Do                                                             'CD schiesst
          Waitms 100
          Tast = Tasetnabfrage()
    
          If I = Gelbt * 10
             Then
             Gruen = 1
             Gelb = 0
          End If
    
          If Taste = 1
             Then
             I =(gruent * 10)
          End If
          I = I + 1
       Loop Until I >(gruent * 10)
          Rot = 0
          Gruen = 1
          Gelb = 1
    
    Loop
    End
    
    Function Tastenabfrage() As Byte
    Local Ws As Word
    
       Tastenabfrage = 0
       Ton = 600
       Start Adc
    
       Ws = Getadc(7)
       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
          End Select
          Sound Portd.7 , 400 , Ton
       End If
    End Function
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hallo -niclas-,

    solche Sachen wie "Loop Until I >(gruent * 10)" kriegt Bascom nicht hin.

    Da geht nur "Loop Until I > Newvar", nachdem du Newvar = gruent * 10 gesetzt hast.

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Hi,

    wie Dirk schon sagt, arbeite mit Zwischenvariablen für die Abfragen, außerdem schreib das "Then" in die gleiche Zeile wie das "IF".

    Und dann hast Du bei "Tastenabfrage" noch ein paar Schreibfehler im Programm, z. B. hier:

    Code:
    Do                                                             'CD schiesst 
          Waitms 100 
          Tast = Tasetnabfrage() 
    
          If I = Gelbt * 10
    Es gibt werder "Tast" noch "Tasetnabfrage" in Deinem Code...

    Grüße

    Torsten

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    25.02.2006
    Ort
    Karlsbad
    Alter
    32
    Beiträge
    59
    Hi,
    und sorry passt jetzt net zum Thema kann dir au net weiterhelfen da ich auch noch Anfänger bin. Aber ich hab da grad was von Bogentunier gelesen und da ich auch im Bogensport tätig bin wolt ich gleich mal fragen wenn es recht ist von wo (welcher Verein) du kommst.

    mfg dunking

  5. #5
    Neuer Benutzer
    Registriert seit
    11.06.2007
    Ort
    bei Mainz
    Alter
    35
    Beiträge
    3
    Vielen Dank Torsten und Dirk!
    Mein Controller tut jetzt was. Ich denke alle weiteren Probleme sind inhaltlicher Natur.

    @dunking
    Ich komm vom SC Hahnheim, ist in Rheinland-Pflaz bei Mainz. Ich schiesse U20 Compound (habs in der Halle zum Landesmeister DSB geschafft). Schiesst du auch?

    gruß
    niclas

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    25.02.2006
    Ort
    Karlsbad
    Alter
    32
    Beiträge
    59
    hi
    ja ich auch aber bissle entfernt "SV Ittersbach" in der nähe von Pforzheim.
    Aber Recurve.

  7. #7
    Neuer Benutzer
    Registriert seit
    11.06.2007
    Ort
    bei Mainz
    Alter
    35
    Beiträge
    3
    Nabend,

    auf meinem Entwicklungsboard RN-Control läuft die Bogenampel jetzt wie sie soll.
    Der nächste Schritt wird sein die Schaltung mit einem Atmega 32 auf eine Lochrasterplatine aufzubauen (später will ich sie vllt. ätzen, wenn ich Eagle im Griff habe oder mir Sprint-Layout zugelegt habe).

    Dazu hab ich noch eine Frage:
    Wie finde ich einen Transitor der für mein Zwecke geignet ist?
    Der Controller soll den Transitor schalten und der wiederum meine Ampel (ca 1,5A). Ich denke da an ein NPN-Transitor, nur wie find ich den passenden?

    danke an alle helfenden

    gruß
    niclas

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad