PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehlerhaftes Programm



Kampi
16.12.2009, 11:47
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:


'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

PicNick
16.12.2009, 11:59
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


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

Kampi
16.12.2009, 12:20
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.

PicNick
16.12.2009, 14:37
moment, du hast die alias verdreht
und lass diese Taster-DIM's weg
soll so sein:


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

Kampi
16.12.2009, 14:56
Huch das mit den alias verdreht ist ja mal dämlich von mir :/

Kampi
17.12.2009, 06:21
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?

mws-h
17.12.2009, 07:12
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