-         

Ergebnis 1 bis 7 von 7

Thema: Fehlerhaftes Programm

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9

    Fehlerhaftes Programm

    Anzeige

    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

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    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
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    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.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    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
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Huch das mit den alias verdreht ist ja mal dämlich von mir :/

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    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?

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.02.2005
    Beiträge
    102
    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
    ---------------o00o----' (_)' ----o00o----------------
    Wer Rechtschreibfehler findet darf sie behalten.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •