-         

Ergebnis 1 bis 7 von 7

Thema: portx = 1 oder = 0 in eine zeile

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25

    portx = 1 oder = 0 in eine zeile

    Anzeige

    hallo leute,
    ein blutiger anfänger braucht mal wieder hilfe, also ich wolle mal eben zu demozwecken ein kleines lauflicht machen, dabei ist mir aufgefallen das ich ja üblerweise jede portnummer seperat ansprechen muss, wie kann ich das ändern, zur zeit sieht das ja nun so aus

    Portb.4 = 1
    Portb.5 = 1
    Portd.0 = 1
    Portd.1 = 1
    Portd.2 = 1
    Portd.3 = 1
    Portd.4 = 1
    Portd.5 = 1
    Portd.6 = 1
    Portd.7 = 1

    alle benötigten ports auf an, wenn ich damit nen lauflicht machen will wird das ganz schön voll, wie kann ich diesen block in eine reihe bekommen, ich hab da mal was gesehen, bzw mir hat da mal jemand was gezeigt, nur kapier ich das ned!
    das sah vollgendermaßen aus:

    Ddrc=&B00000111

    kann man sowas auch dafür gebrauchen, und wenn ja, wie setzt sich das zusammen, wenn mir das jemand kurz erklären könnte wär das sehr geil!

    gruss, bigeggmc

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.07.2005
    Ort
    Neubeckum
    Alter
    37
    Beiträge
    110
    Also Du hast ja ein 1 Byte-Register.

    Mit

    DDRC=0b00001111;

    sprichst Du alle Bits aufeinmal an. MSB-->LSB

    Also von Bit 7 bis Bit 0

    DDRC ist allerdings das Data Direction Register, welches festlegt ob Du den Port als Ausgang oder Eingang benutzt.

    Deine Zeilen oben müssten sich ersetzen lassen durch:

    PORTB=0b00110000; (Bit 5 und 4 auf HIGH)

    PORTC=0b11111111; (oder auch PORTC=0xff (HEX-Code ff = 11111111; Alle Bits auf "HIGH")

    Alles verstanden?
    - Phantasie ist wichtiger als Wissen - - www.uni-soest.de -

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25
    jap, das war deutlich ich werds gleich mal probieren, danke für die schnelle hilfe

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Wenn Du ein Lauflicht für die ersten Schritte basteln möchtest, könntest Du auch erst mal mit einem Port anfangen.
    Da viele I/O's von Controllern meist mehr Strom gegen Masse als gegen Vcc schalten können sollten die LED's mit der Anode gegen Vcc gelegt werden.
    Der Code könnte dann zum beispiel so aussehen:

    Dim A as Byte
    Config Portc = Output
    A = &B11111110
    Portb = &b11111111

    Do
    Portc = A
    Rotate A , left , 1
    Waitms 250
    Loop


    Der Befehl "Rotate" dient dazu die logische 0 um 1 Position weiter nach links zu schieben (von A.0 nach A.1). Die logische 1 des MSB wird dabei zum LSB geschoben. (von A.7 nach A.0)
    Da im Gegensatz zum Befehl "Shift" keine Daten verloren gehen hat man damit eine Endlosschleife gebastelt.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25
    ja danke, das ist doch schonmal was
    im grunde geht es mir nur darum einfach ein kleines lauflicht zu machen um freie ports an zu sprechen, rein demotechnisch, hab mich mit der materie lauflicht noch nicht so beschäftigt, wird aber demnächst wohl kommen müssen weil nen kumpel gern nen soundgesteuertes hätte mit allen rafinessen
    nun ja, ich wers mal probiern

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Es is noch kein Meister vom Himmel gefallen! Wenn es Soundgesteuert sein soll haste Dir aber schon mal nen genz schönen Brocken "aufgehalst" weil Dir ja der Controller alleine nix nützt.

    P.S.: Ich find die Bascom Hilfe sehr gut. Schade eigentlich das es die alte HTML-ähnliche Version nicht mehr zu geben scheint und man sich etwas mühselig durch die PDF scrollen muss.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25
    ne, das werd ich wohl mit einer kleinen transistorschaltung machen und dann den a/d wandler nutzen, das hab ich mir schon alles überlegt, oder ich verwenden einfach nen transistor als schalter auf nen eingangsport und ich werd den die ganze regelung, also die empfindlichkeit vom micro extern machen, nur das dann der chip halt im takt weitergeht ist dann noch wichtig
    aber durch deine hilfe hab ich da schon was gefunden

Berechtigungen

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