- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Nur bestimmte Array-Daten senden - möglich?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Hallo Maik,

    Du hast uns leider nicht verraten welches Digitalpoti Du benutzt,
    wenn es aber eines mit DataIn und DataOut ist, dann wird die CS Leitung auf Low gelegt,
    dann schiebst Du generell "ALLE" Daten, für ALLE Potis hintereinander aus und dann wird das CS wieder auf High gelegt.
    Bei der steigenden Flanke an CS werden dann die Daten von allen Potis übernommen.
    Hier musst Du die Reihenfolge in deinem Array entsprechend berücksichtigen.
    Das erste Byte ist dann für das letzte Poti, da dieses ja als erstes ausgeschoben wird und dann immer weitergereicht wird,
    bis es am letzten Poti angekommen ist.
    Zum Verändern eines Potis brauchst Du dann nur das entsprechende Byte in deinem Array ändern, beim nächsten
    Ausschiebevorgang wird es dann entsprechend übernommen.

    Somit ist deine Idee soweit richtig. Wie das in Bascom aber aussieht weis ich nicht, pin Pascaller

    Siro
    Geändert von Siro (15.12.2017 um 08:34 Uhr)

  2. #2
    Hallo Siro,

    deine Annahme war richtig. Die Poti haben einen Data-In und einen Data-Out. Es geht dabei speziell um die MCP42010.
    Wie das Senden der Daten via SPI erfolgt, ist mir mittlerweile, nachdem ich das Datenblatt bestimmt 6mal gewälzt habe, nun auch geläufig ^^. Mein Englisch ist halt gerade so ausreichend für das Nötigste...
    Ein Testprogramm für 2 dieser Poti habe ich eben noch geschrieben - ging sogar verdammt zügig, da ich nicht jedes Mal ein neues Array erstellen musste.
    Mittlerweile werde ich mit den Arrays auch richtig warm. Habe bis Dato halt immer ohne geschrieben ^^.

    Morgen probiere ich das Programm einmal aus.
    Bin mir im Moment nur nicht ganz sicher, ob die Command-Variablen in der Debounce-Subroutine richtig sind. Werde ich morgen aber sehen. Wenn nicht, dann wandern die halt ins Hauptprogramm ^^.

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $hwstack = 40
    $swstack = 32
    $framesize = 60
    
    Config Portb = Output
    Config Portd = Input
    Portd = 255
    
    Config Spi = Soft , Dout = Portb.1 , Ss = Portb.2 , Clock = Portb.3
    Spiinit
    
    Dim A As Byte , Command1 As Byte , Command2 As Byte , Senddata(4) As Byte , Data1 As Byte , Data2 As Byte
    Dim M1 As Bit
    
    M1 = 0
    
    Declare Sub Links
    Declare Sub Rechts
    Declare Sub Pushbutton
    Declare Sub Powerbutton
    
    '                 ********************************
    '                    ****   Main Program   ****
    '                 ********************************
    
    Do
    
    
    '  ---------------------------
    '  SPI-Dataoutput for MCP42010
    '  ---------------------------
    
       Senddata(1) = Command1
       Senddata(2) = Data1
       Senddata(3) = Command2
       Senddata(4) = Data2
    
     Spiinit
    
       Spiout Senddata(1) , 4
    
    
    '  ----------------
    '  Querying Encoder
    '  ----------------
    
     A = Encoder(pind.2 , Pind.3 , Links , Rechts , 0)
    
    
    '  --------------------
    '  Querying Pushbuttons
    '  --------------------
    
     Debounce Pind.4 , 0 , Encoderbutton , Sub
     Debounce Pind.5 , 0 , Powerbutton , Sub
    
    Loop
    
    
    Links:
    
       If M1 = 0 Then Incr Data1
       If M1 = 1 Then Incr Data2
       If Data1 = 255 Then Data1 = 254
       If Data2 = 255 Then Data2 = 254
    
    Return
    
    
    Rechts:
    
       If M1 = 0 Then Decr Data1
       If M1 = 1 Then Decr Data2
       If Data1 = -1 Then Data1 = 0
       If Data2 = -1 Then Data2 = 0
    
    Return
    
    
    Encoderbutton:
    
       Toggle M1
       If M1 = 0 Then
       Command1 = &B00010011
       Command2 = &B00010000
       Elseif M1 = 1 Then
       Command1 = &B00010000
       Command2 = &B00010011
       End If
    
    Return
    
    
    Powerbutton:
    nop
    Return
    
    
    End

    MFG - Maik

Ähnliche Themen

  1. Array aus Bits möglich?
    Von damfino im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 03.11.2015, 13:02
  2. Senden von Daten von RP5 zum PC
    Von Bigboy im Forum Robby CCRP5
    Antworten: 32
    Letzter Beitrag: 15.06.2007, 15:35
  3. Daten an PC senden
    Von martin66119 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 18.03.2007, 14:20
  4. Daten in Array schreiben
    Von infosystems im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 20.10.2006, 09:57
  5. Daten an Avr senden
    Von MAxK im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 01.01.2005, 15:45

Berechtigungen

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

LiFePO4 Speicher Test