Wie heißt die Lib, die Bascom für SPI verwendet?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • So, Test abgeschlossen.

      Die Lib umfasst jetzt zu Test-Zweclen auch den CLS-Befehl von Bascom.
      In der Lib wird der Aufruf genau gleich umgebogen wie spiin und spiout.

      Allerdings funktioniert der Callback ins Basic-Programm nur beim CLS-Befehl.

      Hier nochmal die Lib (aus dem Lib-Verzeichnis)

      Quellcode

      1. ; testlib hard-spi
      2. [_spiout]
      3. _spiout:
      4. call _spioutFF
      5. Ret
      6. [end]
      7. [_spiin]
      8. _spiin:
      9. call _spiinFF
      10. Ret
      11. [end]
      12. ; zum Test mal der cls befehl
      13. [_CLS]
      14. _CLS:
      15. call _ClsFF
      16. Ret
      17. [End]
      Alles anzeigen
      Und hier noch das Basic-Programm

      BASCOM-Quellcode

      1. $regfile = "m8def.dat"
      2. $HWStack = 20
      3. $SWStack = 20
      4. $FrameSize = 30
      5. $Crystal = 16000000
      6. $Sim
      7. Config Submode = new
      8. $Lib "My_SPI.lib"
      9. '$External _spiout , _spiin ' unsicher ob nötig
      10. Config PortB.2 = Output ' SS-Pin als Ausgang schalten
      11. CONFIG SPI = HARD , INTERRUPT = OFF , DATA_ORDER = MSB , MASTER = YES , POLARITY = HIGH , PHASE = 1 , CLOCKRATE = 16 , NOSS = 1 , SPIIN = 0
      12. SPIInit
      13. Dim Wert as Word
      14. Do
      15. Cls ' ruft Routine _clsFF (unten) auf
      16. ' SPIIn Wert , 2
      17. SPIOut wert , 2 ' sollte Routine _spioutFF (unten) aufrufen, geht aber nicht
      18. Loop
      19. ' Folgende Routinen werden von der Lib aufgerufen
      20. _spioutFF:
      21. !NOP
      22. !Ret
      23. _spiinFF:
      24. !NOP
      25. !RET
      26. ' Hier der Cls-Befehl umgebogen
      27. _clsFF:
      28. !NOP
      29. !RET
      Alles anzeigen
      Eigentlich sollte das Umbiegen von SpiOut und SpiIn genauso funktionieren.
      Ich vermute der Compiler verhindert das.

      Die Lib ist jedenfalls fehlerfrei und lässt sich auch fehlerfrei compilieren (LBX).

      Vielleicht hat noch jemand eine Idee?