Pro II: SPI-Schnittstelle
P2_SPI_Slave_InFifo_Full
P2_SPI_Slave_
InFifo_Full
454
P2_SPI_Slave_InFifo_Full
32 Bit-Werte) im Eingangs-Fifo zurück.
Syntax
#Include
ADwinPro_All.inc
ret_val
P2_SPI_Slave_InFifo_Full
=
Parameter
Eingestellte Moduladresse (1...15).
module
Nummer (1, 2) des SPI-Slaves.
channel
Anzahl der belegten Plätze im Eingangs-Fifo.
ret_val
Bemerkungen
Wenn Sie Daten aus dem Eingangs-FIFO lesen wollen, sollten Sie vorher mit
diesem Befehl prüfen, ob im FIFO noch Daten enthalten sind. Falls keine Daten
mehr vorhanden sind, wird aus dem FIFO-Feld ein undefinierter Wert gelesen.
Ein freier Platz im Eingangs-Fifo hat 32 Bit Länge. Bei einer SPI-Bitlänge kleiner
gleich 32 Bit enthält jeder belegte Platz eine vollständige SPI-Nachricht; bei ei-
ner SPI-Bitlänge größer 32 Bit sind jeweils 2 Plätze für eine SPI-Nachricht nötig.
Siehe auch
P2_SPI_Config, P2_SPI_Slave_Config, P2_SPI_Slave_OutFifo_Write,
SPI_Slave_OutFifo_Empty, P2_SPI_Slave_InFifo_Read,
Clear_Fifo
Gültig für
SPI-2-D Rev. E, SPI-2-T Rev. E
Beispiel
#Include
ADwinPro_All.inc
#Define
mod_no
4
#Define
slave_no
Dim
array[100]
As Long
Dim
index
As Long
Init:
P2_SPI_Mode(mod_no, 2)
Rem CPOL = 0, CPHA = 1; Nachrichtenlänge 8 Bit
P2_SPI_Config(mod_no, slave_no, 1, 8, 0, 0)
P2_SPI_Slave_Config(mod_no, slave_no, 0)
index
=
1
Event:
Par_1
= P2_SPI_Slave_InFifo_Full(mod_no, slave_no)
If
(Par_1
> 0)
Then
Rem eine SPI-Nachricht lesen
P2_SPI_Slave_InFifo_Read(mod_no, slave_no, Par_1, array,
index)
index
=
index
If
(index
> 100)
EndIf
gibt die Anzahl der belegten Plätze (=eingegangene
1
'2 Slave-Schnittstellen
+
Par_1
Then
index
=
1
ADwin-Pro II Software, Handbuch Apr. 2021
ADwin
module
channel
(
,
)
LONG
LONG
LONG
P2_
P2_SPI_Slave_