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
Vorweg: ich habe keine Ahnung von Bascom Fang mal damit an zu schreiben, welche Werte "Heatdi" annimmt..... Vermutlich ist Pin5 aber nur das Eingangsregister....
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....
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.