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







Zitieren

Lesezeichen