-         

Ergebnis 1 bis 10 von 10

Thema: einfache Frage zu IF Bedingungen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151

    einfache Frage zu IF Bedingungen

    Anzeige

    Hallo
    ich hab endlich die schaltung so weit fertig, das ich sie einsetzen könnte.
    ein Port soll geoffnet werden, wenn ein bestimmtes RC5 Signal kommt.
    Ich komm nur mit den Bedingungen nicht zu recht, bin eigentlich Pascaller, könnt ihr mir sagen, wie das richtig geht?

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    $lib "mcsbyte.lbx"
    Config Pind.2 = Input
    
    Config Portb.1 = Output
    Portb.1 = 0
    
    Portd.2 = 1
    
    Config Rc5 = Pind.2
    
    
    Enable Interrupts
    
    
    Dim Address As Byte , Command As Byte
    
    Print "Waiting for RC5..."
    
    
    Do
    
      Getrc5(address , Command)
    
      If Address <> 255 Then
    
         Command = Command And &B01111111
    
         Print Address ; "  " ; Command
    
         If Address = 30 And Command = 61
           Then
             Portb.1 = 1
             Waitms 100
             Portb.1 = 0
         End If
    
    
      End If
    
    Loop
    
    End
    da ich im Code nichts makieren kann pack ich den hier nochmal so hin:

    Getrc5(address , Command)

    If Address <> 255 Then

    Command = Command And &B01111111

    Print Address ; " " ; Command

    If Address = 30 And Command = 61
    Then
    Portb.1 = 1
    Waitms 100
    Portb.1 = 0
    End If


    End If

    Die Probleme betreffen den Fetten Teil

    Danke schonmal

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2006
    Ort
    Biberach
    Alter
    27
    Beiträge
    485
    Hi,
    was genau ist denn das Problem? Das hast du glaub ich in deinem Beitrag vergessen.

    MfG

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    23.02.2007
    Ort
    Erlangen
    Alter
    23
    Beiträge
    322
    ich glaub so müsste es gehen:
    Code:
    If Address = 30 And Command = 61 Then 
    Portb.1 = 1 
    Waitms 100 
    Portb.1 = 0 
    End If

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    was hast du denn für ein Gerät das bei dir Adresse 30 benutzt wird ?

    Bei mir läuft alles über Addresse 0.

    Kleines Codebeispiel :

    Code:
    'RC5 Receiver
    Getrc5(address , Command)
    If Address = 0 Then
    Command = Command And &B01111111
    Print #4 , Address ; "  " ; Command                         'wird benötigt um den Code zu sehen welche Taste gerade empfangen wurde
    
    Portg.0 = 1                                                 'LED ein im IR Receiver
    Portc.5 = 1                                                 'LED unter µC ein
    Waitms 200
    Portg.0 = 0                                                 'LED aus im IR Receiver
    Portc.5 = 0                                                 'LED unter µController aus
    
    'Ein
    If Command = 13 And Di9_schaltzustand = "0" And Di11_schaltzustand = "0" Then
    Sound Portl.4 , 500 , 450
    Porth.3 = 1
    End If
    
    'Aus
    If Command = 12 Or Di9_schaltzustand = "1" Or Di11_schaltzustand = "1" Then
    Sound Portl.4 , 400 , 450
    Sound Portl.4 , 300 , 450
    Sound Portl.4 , 200 , 450
    Sound Portl.4 , 100 , 450
    Porth.3 = 0
    End If
    Gruß
    Steffen

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151
    so wie der code jetzt ist bekomme ich Folgende Fehlermeldung (siehe Anhang)
    Ich bin davon ausgegangen, dass ich die Bedingung vielleicht anders schreiben muss, aber irgendeinen Compiler Fehler bekomme ich dann immer.
    30 61 bekomme ich, wenn ich den Power Knopf meiner WinTv Fernbedienung drücke. zum Fernsehen benutze ich einen Media PC und möchte den per Fernbedienung Einschalten können.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fehler_133.jpg  

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    Schreibe diesen Abschnitt mal so : ( da ist dir "Then" nur in die falsche Zeile gerutscht)

    Code:
     If Address = 30 And Command = 61 Then 
             Portb.1 = 1 
             Waitms 100 
             Portb.1 = 0 
         End If

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    23.02.2007
    Ort
    Erlangen
    Alter
    23
    Beiträge
    322
    Des hab ich auch schon geschrieben!
    Siehe Post von 0:27

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.11.2006
    Beiträge
    151
    Cool, danke Leute, jetzt gehts...ich kenn das so nicht, bei Pascal kannst du das Quasi hinschreiben, wo du willst.

    @adrisch: Sorry, hab dein Code bestimmt 5 mal mit meinem verglichen und und den Unterschied einfach nicht gesehen

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    23.02.2007
    Ort
    Erlangen
    Alter
    23
    Beiträge
    322
    MAcht nichts...

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    sry dein Post hatte ich voll überlesen adrisch ^^ aber offensichtlich erging es Testus2K auch nicht anders.

    Gruß
    Steffen

Berechtigungen

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