bascom syntax?

OP #1380350
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
Gast #1380886
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren