📄 rf_rx.html
字号:
RF_RX.ReceiveStream</H3>
<PRE>
RF_RX.Buffer RF_RX.BytesRead STATUS,Z <B>RF_RX.ReceiveStream</B>()</PRE>
<P>
<DL>
<DD> This method receives several bytes of data from the RF Interface. The PWM coded data is being decoded and written to RF_RX.Buffer. The number of bytes received will be stored in RF_RX.BytesRead.
<P>
<DD><DL>
<DT><B>Returns:</B>
<DD><CODE>RF_RX.Buffer</CODE> - The received data </DD>
<DD><CODE>RF_RX.BytesRead</CODE> - The number of bytes read </DD>
<DD><CODE>STATUS,Z</CODE> - 1 if failed (BufferOverflow) </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD>T0CON INTCON ,T0IE TMR0L </DD></DL>
</DD>
<DD><DL>
<DT><B>Calls subroutines:</B><PRE> RF_RX.WaitResponse RF_RX.DetectEdge Delay.Mikros Delay.Start8 Delay.Start16 RF_RX.ReceiveHeader RF_RX.DetectEdge Delay.Mikros Delay.Start8 Delay.Start16 RF_RX.ReceiveByte
</PRE>
</DD></DL>
<DD><DL>
<DT><B>Stacklevel:</B><DD>3</DD></DL>
</DD>
<DD><DL>
<DT><B>Status:</B><DD> Written</DD></DL>
</DD>
<P>
<DD><DL>
<DT><B>Example:</B><DD><CODE><TABLE BORDER="0"><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveStream </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>movf </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.Bytes.Read </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">NothingRead </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>lfsr </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">FSR2,RF_RX.Buffer </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>movf </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">FSR2,w </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This reads a stream. If no byte is received the code at NothingRead is executed, otherwise the first byte received is moved to w.</DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF_RX.CopyBuffer"></A><H3>
RF_RX.CopyBuffer</H3>
<PRE>
<B>RF_RX.CopyBuffer</B>( FSR1 )</PRE>
<P>
<DL>
<DD> This method copies the ReceiveBuffer to the given address. The programmer has to ensure, that the buffer is large enough for the data.
<P>
<DD><DL>
<DT><B>Parameters:</B>
<DD><CODE>FSR1</CODE> - The address of the destination buffer </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD> FSR2 FSR1</DD></DL>
</DD>
<DD><DL>
<DT><B>Stacklevel:</B><DD>1</DD></DL>
</DD>
<DD><DL>
<DT><B>Status:</B><DD> Written</DD></DL>
</DD>
<P>
<DD><DL>
<DT><B>Example:</B><DD><CODE><TABLE BORDER="0"><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveStream </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>lfsr </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">FSR1,SerialNumber </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.CopyBuffer </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> Copies the received bytes to the serial number.</DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF_RX.WaitResponse"></A><H3>
RF_RX.WaitResponse</H3>
<PRE>
<B>RF_RX.WaitResponse</B>()</PRE>
<P>
<DL>
<DD> This method waits for a message from the RF Interface. The PWM coded data is being decoded and written to RX_REG.
<P>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD>INTCON ,T0IE T0CON </DD></DL>
</DD>
<DD><DL>
<DT><B>Calls subroutines:</B><PRE> RF_RX.DetectEdge Delay.Mikros Delay.Start8 Delay.Start16
</PRE>
</DD></DL>
<DD><DL>
<DT><B>Stacklevel:</B><DD>2</DD></DL>
</DD>
<DD><DL>
<DT><B>Status:</B><DD> Tested</DD></DL>
</DD>
<P>
<DD><DL>
<DT><B>Example:</B><DD><CODE><TABLE BORDER="0"><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.WaitResponse </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveHeader </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveByte </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This is the complete sequence to receive one byte.</DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF_RX.ReceiveHeader"></A><H3>
RF_RX.ReceiveHeader</H3>
<PRE>
STATUS,Z <B>RF_RX.ReceiveHeader</B>()</PRE>
<P>
<DL>
<DD> This method checks if the incoming signal matches the required header.
<P>
<DD><DL>
<DT><B>Returns:</B>
<DD><CODE>STATUS,Z</CODE> - 0 if successfull, otherwise 1 </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD>INTCON ,T0IE T0CON </DD></DL>
</DD>
<DD><DL>
<DT><B>Calls subroutines:</B><PRE> RF_RX.DetectEdge Delay.Mikros Delay.Start8 Delay.Start16
</PRE>
</DD></DL>
<DD><DL>
<DT><B>Stacklevel:</B><DD>2</DD></DL>
</DD>
<DD><DL>
<DT><B>Status:</B><DD> Tested</DD></DL>
</DD>
<P>
<DD><DL>
<DT><B>Example:</B><DD><CODE><TABLE BORDER="0"><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.WaitResponse </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveHeader </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveByte </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Fail </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This is the complete sequence to receive one byte.</DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF_RX.DetectEdge"></A><H3>
RF_RX.DetectEdge</H3>
<PRE>
STATUS,Z <B>RF_RX.DetectEdge</B>( EDGE_SELECTOR DEBOUNCE_TIME Delay.Returned )</PRE>
<P>
<DL>
<DD> This method waits for an edge, it is a module intern function.<BR>
<P>
<DD><DL>
<DT><B>Parameters:</B>
<DD><CODE>EDGE_SELECTOR</CODE> - 1 to detect rising edge, 0 to detect falling edge </DD>
<DD><CODE>DEBOUNCE_TIME</CODE> - The time the signal has to be stable before a detection is successfull </DD>
<DD><CODE>Delay.Returned</CODE> - The time out for the routine </DD>
</DL></DD>
<DD><DL>
<DT><B>Returns:</B>
<DD><CODE>STATUS,Z</CODE> - 0 if successfull, otherwise 1 </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD> INTCON,T0IE</DD></DL>
</DD>
<DD><DL>
<DT><B>Stacklevel:</B><DD>1</DD></DL>
</DD>
<DD><DL>
<DT><B>Status:</B><DD> Tested</DD></DL>
</DD>
<P>
<DD><DL>
<DT><B>Example:</B><DD><CODE><TABLE BORDER="0"><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">Delay.Mikros </FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">.1000 </FONT></CODE></TD> <TD><CODE><FONT COLOR="#22AAAA">; set timeout to minimum header initialisation time </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>movlw </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">(.200/(RF_RX.T_INST*.5)) </FONT></CODE></TD> <TD><CODE><FONT COLOR="#22AAAA">; set debounce time, to supress spikes </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>movwf </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">DEBOUNCE_TIME </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bcf </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">EDGE_SELECTOR </FONT></CODE></TD> <TD><CODE><FONT COLOR="#22AAAA">; detect falling edge </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>call </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">RF_RX.DetectEdge </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bnz </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">$+4 </FONT></CODE></TD> <TD><CODE><FONT COLOR="#22AAAA">; edge detected? </FONT></CODE></TD></TR><TR> <TD><CODE> </CODE></TD> <TD><CODE><FONT COLOR="#0000FF"><B>bra </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">FAILURE </FONT></CODE></TD> <TD><CODE><FONT COLOR="#22AAAA">; no, then return with failure </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This example detects an falling edge. If the edge doesn't occure within 1ms the FAILURE code will be executed. Transitions on the line with a duration of less than 20us will be filtered.</DD></DL>
</DD>
</DL>
<HR>
<!-- ========= END OF CLASS DATA ========= -->
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -