www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bascom syntax?


Autor: Steven Zimmermann (steven84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Mikrocontroller Gemeinde,

ich habe wieder mal ein Problem. Diesmal in Bascom, hier mal der Code 
dazu:


Config Adc = Free , Prescaler = Auto , Reference = Internal


Start Adc

Dim Channel As Byte
Dim Heatdi As word
Config Pind.5 = Output
Config Pind.7 = Output
Const Tempmax = 160

Pin5 Alias Pind.5
Pin7 Alias Pind.7



Do
Channel = 0
  Heatdi = Getadc(channel)

  If Heatdi < Tempmax Then   ' Vergl. von Adc-Wert mit Constante
  Reset Pin5
    Else
    Set Pin5
  End If

  If Pin5 = 1 Then
  Set Pin7
  Else
  Reset Pin7
  End If
Loop

der ADC Arbeitet einwandfrei hab das Ergebniss mal mit dem Print Befehl 
ausgeben lassen. Das Prog schaltet mir die Ausgänge nicht ein. Es 
passiert rein gar nix. Hab auch mal den Status der Ports über die RS232 
ausgeben lassen da kommt auch nur ne 0 raus. ich hab echt keine Idee wo 
ich da anfangen soll mit suchen.

Grüße

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorweg: ich habe keine Ahnung von Bascom

Fang mal damit an zu schreiben, welche Werte "Heatdi" annimmt.....
Vermutlich ist Pin5 aber nur das Eingangsregister....

Autor: Joachim R. (bastelbaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PinD ist der Eingang, benutz PortD, das ist der Ausgang.


Also:
Config Portd.5 = Output
Config Portd.7 = Output

Pin5 Alias Portd.5
Pin7 Alias Portd.7

usw....

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.
Niemals "Config PinD.5 = Output" schreiben (siehe unten)
Immer "Config Portd.5 = Output" schreiben
oder "DDRD = 255" alle Pin's von "D" sind Ausgänge
2.
Und es liegd daran das du die "PIN" register als alias nimmst. Du 
solltest aber "PORT" nehmen.

erklärung:

PinD.5 = Statusabfrage ob Pin High oder Low (If PinD.5 = 0 Then ...).
PortD.5 = Ausgang auf High (PortD.5 = 1) oder Low (PortD.5 = 0) setzen.
DDRD.5 = Richtungsregister ob Pin als Eingang oder Ausgang geschalten

Im algemeinen zur Bascom Programmierung:

Ich würde niemals "Port's" einen alias Namen mit "Pin Namen" geben da 
das nur zu Verwechslungen führt.

Autor: Steven Zimmermann (steven84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abend, so ich hab das jetzt mal in Portd.* geändert und siehe da es 
geht.
Frag mich nur warum die dann auch im Syntax "CONFIG PINx.y = state " 
schreiben??? Na gut jedenfalls konnte ich heute das schon lange 
rumliegende Projekt zu Ende bringen.

Vielen Dank!

Grüße

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.