⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf_rx.html

📁 PKE(被动无钥门禁系统
💻 HTML
📖 第 1 页 / 共 3 页
字号:
RF_RX.ReceiveStream</H3>
<PRE>
&nbsp;RF_RX.Buffer&nbsp;&nbsp;RF_RX.BytesRead&nbsp;&nbsp;STATUS,Z&nbsp;&nbsp;<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>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveStream&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>movf&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.Bytes.Read&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">NothingRead&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>lfsr&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">FSR2,RF_RX.Buffer&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>movf&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">FSR2,w&nbsp;</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>
&nbsp;<B>RF_RX.CopyBuffer</B>(&nbsp;FSR1&nbsp;)</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>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveStream&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>lfsr&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">FSR1,SerialNumber&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.CopyBuffer&nbsp;</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>
&nbsp;<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>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.WaitResponse&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveHeader&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveByte&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</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>
&nbsp;STATUS,Z&nbsp;&nbsp;<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>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.WaitResponse&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveHeader&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.ReceiveByte&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Fail&nbsp;</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>
&nbsp;STATUS,Z&nbsp;&nbsp;<B>RF_RX.DetectEdge</B>(&nbsp;EDGE_SELECTOR&nbsp;&nbsp;DEBOUNCE_TIME&nbsp;&nbsp;Delay.Returned&nbsp;)</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>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">Delay.Mikros&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">.1000&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#22AAAA">; set timeout to minimum header initialisation time&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>movlw&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">(.200/(RF_RX.T_INST*.5))&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#22AAAA">; set debounce time, to supress spikes&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>movwf&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">DEBOUNCE_TIME&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bcf&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">EDGE_SELECTOR&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#22AAAA">; detect falling edge&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>call&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">RF_RX.DetectEdge&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bnz&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">$+4&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#22AAAA">; edge detected?&nbsp;</FONT></CODE></TD></TR><TR>	<TD><CODE>&nbsp;</CODE></TD>	<TD><CODE><FONT COLOR="#0000FF"><B>bra&nbsp;</B></FONT></CODE></TD>	<TD><CODE><FONT COLOR="#AA22AA">FAILURE&nbsp;</FONT></CODE></TD>	<TD><CODE><FONT COLOR="#22AAAA">; no, then return with failure&nbsp;</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>
&nbsp;
<!-- ========= END OF CLASS DATA ========= -->




</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -