Pro II: RSxxx
P2_Write_Fifo_Full
336
Beispiel
Rem sending data to and receiving data from the PC while using
Rem a Fifo in ADwin-Pro II
#Include
ADwinPro_All.inc
#Define
outfifo
Data_1
#Define
infifo
Data_2
#Define
rs_adr
5
#Define
rs_channel
1
Dim
outfifo[1000]
As Long As Fifo
Dim
infifo[1000]
As Long As Fifo
Dim
value, dummy,
check
Rem use LED as signal: red = sending, green = receiving,
Rem orange (red+green) = sending + receiving
Dim
red_led,
green_led
Dim
green_led_time
As Long
Dim
led_time
As Long
Init:
Rem reset and initialize channel
P2_RS_Reset(rs_adr)
P2_RS_Init(rs_adr, 1, 9600, 0, 8, 0, 0)
Fifo_Clear(1)
Fifo_Clear(2)
green_led
=
0
red_led
=
0
Event:
Rem sending
If
(Fifo_Full(1) > 0)
If
(P2_Write_Fifo_Full(rs_adr, rs_channel) = 0)
Rem send Fifo empty?
value
=
outFifo
dummy
= P2_Write_Fifo(rs_adr, rs_channel, value)
Rem dummy is not to be checked, since Write_Fifo_Full has
Rem proved that Fifo has empty elements.
'do LED settings
If
(red_led
= 0)
red_led
=
1
led_time
= Read_Timer()
EndIf
EndIf
EndIf
Rem receiving
If
(Fifo_Empty(2) > 0)
check
= P2_Read_Fifo(rs_adr, rs_channel)
If
(check
<> -1)
inFifo
=
check
'do LED settings
If
(green_led
= 0)
green_led
=
1
led_time
= Read_Timer()
EndIf
EndIf
EndIf
'output LED settings
dummy
=
(red_led
And
As Long
As Long
Then
'any data present?
'read value from Fifo
Then
Then
'are there empty elements?
Then
'is a value in the receiving buffer?
'get value into inFifo
Then
1)
Or
Shift_Left(green_led
ADwin-Pro II Software, Handbuch Apr. 2021
ADwin
Then
And
1, 1)