www.mikrocontroller.net

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


Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias R. schrieb:
> Was ist hieran falsch?

Ist das eine Fangfrage?

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

Autor: MWS (Gast)
Datum:

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

Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

$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
 Declare Sub _flyhigh
 Declare Sub _flylow
 Declare Sub _adc As Byte

Do
  Call _distanz
Loop

End

Sub _distanz

  Dim A As Word

  If A = 1 Then
    Call _flylow
  Else
    Call _flyhigh
  End If

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)

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.