-         

Ergebnis 1 bis 9 von 9

Thema: Pin's konfigurieren während de programablaufs?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2009
    Beiträge
    22

    Pin's konfigurieren während de programablaufs?

    Anzeige

    Hallo Leute

    Ist es möglich während des programablauf pins als output oder input zur konfigurieren?

    ungefähr so:

    For Idx = 15 To 0 Step -1
    Config Porta.6 = Output
    Reset Porta.6
    '
    If Dat.0(idx) Then
    Config Porta.5 = Input
    Else
    Config Porta.5 = Output
    Reset Porta.5
    End If
    Waitms 1
    Config Porta.6 = Input
    Waitms 1
    Next Idx

    Config Porta.5 = Input

    Grüsse
    Pinto

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Dazu musst du die DDRx Register umschalten.
    Also DDRA.6=1 schaltet den Pin auf Output, entsprechend DDRA.6=0 für Input.
    Evtl. musst du noch aufpassen, dass du das Port-Register zum richtigen Zeitpunkt umschaltest.
    PORTA.6=1 setzt den Ausgangspin auf High bzw. schaltet den PullUp des Eingangspins ein.

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Pinto,

    Ist es möglich während des programablauf pins als output oder input zur konfigurieren?
    ja.

    Dat.0(idx) -> daran dürfte sich der Compiler aber stören?

    Gruß, Michael

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wann sonst, wenn nicht zur Laufzeit soll man die Register zur Datenrichtung ändern. Extra Fuses dafür gibt es nicht.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2009
    Beiträge
    22
    Hallo

    Was ich meine ist, ob die DDR Register in der Hauptschleife des Programs geändert werden düfen? Also nicht nur in der Initialisierungsphase.
    Was ich damit bewirken will, ist das einige pins's in tri-state versetzt werden ohne die pullups einzuschalten. Geht das in Bascom?

    Ich schreibe mein program von Picbasic Pro auf Bascom um, darum die Zeile "If Dat.0(idx) Then" die in Bascom natürlich nicht funktioniert.

    Gruss
    Pinto

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Pinto,

    Was ich meine ist, ob die DDR Register in der Hauptschleife des Programs geändert werden düfen?
    Hast du meine letzte Antwort gelesen? Und die von Besserwessi?

    Gruß, Michael

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Hallo!

    Dieses Programm von mir ändert den Zustand der Pins auch zur Laufzeit:
    Code:
    'Name:.............Reaktive LED
    'Version:..........1.0a
    'Datum:............25.12.2008
    'Autor:............Thomas Edlinger
    '---------------------------------
    'Beschreibung: Bei Lichteinfall auf die LED schaltet sich die LED ein
    '              PA6=Anode
    '              PA7=Kathode
    
    
    
    $regfile = "m32def.dat"
    $crystal = 1000000
    
    
    'KONFIGURATION PORTS
    Config Porta.6 = Output
    Config Porta.7 = Output
    
    Dim A As Bit
    
    
    
    Do
    
       Porta.6 = 0
       Porta.7 = 1
       Waitms 1
    
       Config Porta.7 = Input
       Porta.7 = 0
       Waitms 20
    
       A = Pina.7
    
       Config Porta.7 = Output
       Porta.7 = 0
    
       If A = 0 Then
          Porta.6 = 1
          Wait 1
          Porta.6 = 0
       End If
    
    
    
    Loop
    
    End
    Das Programm funktioniert übrigens einwandfrei.

    Gruß
    Thomas

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2009
    Beiträge
    22
    Hallo TomEdl

    Danke für die Hilfe.
    Was ich wissen wollte ist ob der controller pin nach ein Config Porta.7 = Input in Tri-State geht?

    Ist die zweite instruktion nötig?
    Config Porta.7 = Input
    Porta.7 = 0 'warum?
    Waitms 20
    A = Pina.7

    Gruss
    Pinto

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Zitat Zitat von Pinto
    Was ich wissen wollte ist ob der controller pin nach ein Config Porta.7 = Input in Tri-State geht?
    Tristate direkt nicht aber er ist eben hochohmig.

    Zitat Zitat von Pinto
    Ist die zweite instruktion nötig?
    Config Porta.7 = Input
    Porta.7 = 0 'warum?
    Waitms 20
    A = Pina.7
    Diese Instruktion ist in meinem Programm notwendig, da sich ansonsten die LED - bei welcher ich vorher die Sperrschichtkapazität aufgeladen habe - sofort wieder über den internen Pullup-Widerstand wieder entladen würde und ich somit keine Messung der Helligkeit vornehmen könnte. Als nächstes wird dann 20ms gewartet und der Zustand des Pins (0 oder 1) in die Variable A geschrieben. Bei A=0 wurde die LED mit der Taschenlampe angeleuchtet, bei A=1 nicht.

    Ist ein recht geniales Prinzip, nur Batterie, µC, ein Widerstand und eine LED. Wenn ich jetzt mit der Taschenlampe nach draußen auf den Baum leuchte, blinkt es zurück.

    Gruß
    Thomas

Berechtigungen

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