Forum: Mikrocontroller und Digitale Elektronik Was ist an hier dem Programmmcode bis jetzt falsch? ( Bascom)


von Matthias R. (mons)


Lesenswert?

Was ist hieran falsch?

Programmcode geschrieben in Bascom:




$regfile = "m168def.dat"
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 64
$baud = 9600

Config Adc = Single , Prescaler = Auto
 Config Portd.0 = Output
 Config Portd.1 = Output
 Config Portd.2 = Output
 Config Portd.3 = Output

 Declare Sub _distanz As Byte
 Declare Sub _flyhigh As Byte
 Declare Sub _flylow As Byte
 Declare Sub _adc As Byte



Do

Call Sub _distanz
 Loop

End








Sub _distanz

Do

Dim A As Word






If A = 1 Call Sub _flylow
         Else Call Sub _flyhigh



End Sub

von Karl H. (kbuchegg)


Lesenswert?

Matthias R. schrieb:
> Was ist hieran falsch?

Ist das eine Fangfrage?

Die Anwtort: Falsch ist, dass du kein BASCOM Tutorial durchgearbeitet 
hast?

von MWS (Gast)


Lesenswert?

Der Compiler weist durchaus freundlich auf die Probleme hin. Wobei er 
hier ziemlich viel Arbeit hat :D

von Matthias R. (mons)


Lesenswert?

Nein es ist keine Fangfrage !
Muss ich den Code zuerst fertig schreiben, damit Bascom mir keine Fehler 
mehr anzeigt?
Er sagt immer, dass Sub _abstand nicht declariert wurde!

von Karl H. (kbuchegg)


Lesenswert?

Matthias R. schrieb:
> Nein es ist keine Fangfrage !
> Muss ich den Code zuerst fertig schreiben, damit Bascom mir keine Fehler
> mehr anzeigt?
> Er sagt immer, dass Sub _abstand nicht declariert wurde!

das sagt er zwar nicht, denn deine Sub heisst _distanz und nicht 
_abstand

1
$regfile = "m168def.dat"
2
$crystal = 16000000
3
$framesize = 32
4
$swstack = 32
5
$hwstack = 64
6
$baud = 9600
7
8
Config Adc = Single , Prescaler = Auto
9
 Config Portd.0 = Output
10
 Config Portd.1 = Output
11
 Config Portd.2 = Output
12
 Config Portd.3 = Output
13
14
 Declare Sub _distanz
15
 Declare Sub _flyhigh
16
 Declare Sub _flylow
17
 Declare Sub _adc As Byte
18
19
Do
20
  Call _distanz
21
Loop
22
23
End
24
25
Sub _distanz
26
27
  Dim A As Word
28
29
  If A = 1 Then
30
    Call _flylow
31
  Else
32
    Call _flyhigh
33
  End If
34
35
End Sub

Achte drauf wo das Wort SUB auftaucht und wo nicht und was der 
Unterschied zwischen einer SUB und einer FUNCTION ist, bzw. wie die 
Schreibweise beim CALL ist.

Das alles wäre durchaus auch durch Studium der Online-Hilfe bzw. den 
darin enthaltenen Beispielen zu lösen gewesen. (Genau so hab ichs 
nämlich auch gemacht weil ich BASCOM nicht kann)

von Max (Gast)


Lesenswert?

Ich hab mal Bascom geproggt, bin aber inzwischen zu c übergegangen, ist 
einfach schneller und portierbarer. Du musst auf jedenfall deinen Code 
fertigmachen bevor du erwarten kannst, dass alles fehlerfrei kompiliert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.