-
Fehlerhaftes Programm
Hallo
Ich hab folgendes Programm das auf Tastendruck ein PWM Signal ausgeben soll. Und je nachdem welcher Taster gedrückt wurde hat das SIgnal ein unterschiedliches Tastverhältnis. Nur das Programm funktioniert nicht. Also das PWM Signal ändert sich nicht.
Hier ist das Programm:
Code:
'LED - Dimmen
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portd.5 = Output
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input
Pinb.1 Alias Taster2
Pinb.2 Alias Taster3
Pinb.3 Alias Taster4
Portc.5 Alias Led
Dim Taster2 As Byte
Dim Taster3 As Byte
Dim Taster4 As Byte
Taster2 = 0
Taster3 = 0
Taster4 = 0
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
Do
Compare1a = 50
If Taster2 = 1 Then Compare1a = 100 Else Waitms 50
If Taster3 = 1 Then Compare1a = 150 Else Waitms 50
If Taster4 = 1 Then Compare1a = 200 Else Waitms 50
Loop
End
(PicNick)
Findet da jemand einen Fehler?
Danke schonmal
-
Taster werden meistens mit pullup an + angeschlossen und bei betätigung mit GND verbunden.
Ist das bei dir so ?
Dann solltest du mittels
PORTB = &HFF
ev. die internen Pullups aufdrehen.
Und in diesem Fall musst du auf "0" abfragen
Code:
If Taster2 = 0 Then Compare1a = 100 Else Waitms 50
etc.
Weiters: du setzt bei jedem Durchlauf den Wert auf 50
d.h. wenn du bei einem Taster auf 100 setzt, gilt dieser Wert gerade ein paar µS
-
D.h. ich lösche die Zeile
Compare1a = 50
und dreh die Taster um das ich sie nicht auf 1 abfrage sondern auf GND?
Also ich hab das jetzt so gemacht:
Die Eingänge mit 10k Ohm an 5V verbunden und zwischen EIngang und Widerstand jeweils einen Schalter der beim Schalten auf GND geht. Nun habe ich das Problem das er die Tastverhältnisse beim PWM Signal nicht ändert. Es bleibt die ganze Zeit gleich egal welchen Schalter ich betätige.
-
moment, du hast die alias verdreht
und lass diese Taster-DIM's weg
soll so sein:
Code:
Taster2 Alias Pinb.1
Taster3 Alias Pinb.2
Taster4 Alias Pinb.3
Led Alias Portc.5
'(
Dim Taster2 As Byte
Dim Taster3 As Byte
Dim Taster4 As Byte
')
wundert mich, dass Bascom nicht meckert
-
Huch das mit den alias verdreht ist ja mal dämlich von mir :/
-
Es funktioniert nun endlich. Es lag echt nur an der vertauschung des Alias - Befehls ](*,)
Und eine Frage nebenbei. Wie ich sehe hast du mein Programm ganz am Anfang in so einen Code gepackt. Wie mach ich das den?
-
Siehe im Editor (nicht in der Schnellantwort), da gibt es einen "Button" da steht "Code" drin.
Bedienung: Auf "Code" klicken, das Tag wird eingefügt - Codezeilen eingeben - auf "Code*" klicken und das Endtag wird gesetzt
Das wars.
Ist wie bei allen anderen Foren mit Links oder Bildern auch.
mws