📄 rf.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by AsmDoc -->
<TITLE>
HTMLWriter
</TITLE>
<META NAME="keywords" CONTENT="HTMLWriter class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="RF";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ======== START OF CLASS DATA ======== -->
<H2>
Module RF</H2>
<HR>
<P>
RF.asm Jan Ornter DATE: 11-9-2005 VER.: 1.0 This class provides access to the optionally RF-Interface. It will transmit a header (see below) and pulse with modulated data (see below).<BR>
<P>
<P>
<B> Transmission frame:</B><p style="position:relative;" id="RF_time_0_p"><IMG SRC="RF_time_0.jpg" NAME="RF_time_0" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_time_0_res()",100);var RF_time_0_init = document.RF_time_0.width ;function RF_time_0_res(){try{if(RF_time_0_init > parent.classFrame.innerWidth-45) document.RF_time_0.width=parent.classFrame.innerWidth-45;else{ document.RF_time_0.width=RF_time_0_init; document.getElementById("RF_time_0_p").style.left= ((parent.classFrame.innerWidth-document.RF_time_0.width-45) / 2) + "px"; document.getElementById("RF_time_0_p").style.width= document.RF_time_0.width + "px";}}catch(Exception){}}</SCRIPT><B> A pwm coded '1':</B><p style="position:relative;" id="RF_time_1_p"><IMG SRC="RF_time_1.jpg" NAME="RF_time_1" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_time_1_res()",100);var RF_time_1_init = document.RF_time_1.width ;function RF_time_1_res(){try{if(RF_time_1_init > parent.classFrame.innerWidth-45) document.RF_time_1.width=parent.classFrame.innerWidth-45;else{ document.RF_time_1.width=RF_time_1_init; document.getElementById("RF_time_1_p").style.left= ((parent.classFrame.innerWidth-document.RF_time_1.width-45) / 2) + "px"; document.getElementById("RF_time_1_p").style.width= document.RF_time_1.width + "px";}}catch(Exception){}}</SCRIPT><B> A pwm coded '0':</B><p style="position:relative;" id="RF_time_2_p"><IMG SRC="RF_time_2.jpg" NAME="RF_time_2" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_time_2_res()",100);var RF_time_2_init = document.RF_time_2.width ;function RF_time_2_res(){try{if(RF_time_2_init > parent.classFrame.innerWidth-45) document.RF_time_2.width=parent.classFrame.innerWidth-45;else{ document.RF_time_2.width=RF_time_2_init; document.getElementById("RF_time_2_p").style.left= ((parent.classFrame.innerWidth-document.RF_time_2.width-45) / 2) + "px"; document.getElementById("RF_time_2_p").style.width= document.RF_time_2.width + "px";}}catch(Exception){}}</SCRIPT><HR>
<P>
<!-- =========== CONSTANT SUMMARY =========== -->
<A NAME="constant_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constant Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> .4100</CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.T_HDR_INIT">RF.T_HDR_INIT</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> .550</CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.T_HDR_GAP">RF.T_HDR_GAP</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> .2100</CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.T_HDR_HIGH">RF.T_HDR_HIGH</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> .2100</CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.T_HDR_LOW">RF.T_HDR_LOW</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> .250</CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.T_STEP">RF.T_STEP</A></B></CODE>
<BR>
</TD>
</TR>
</TABLE>
<P>
<!-- ========== MACRO SUMMARY =========== -->
<A NAME="macro_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Macro Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE></CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.Init">RF.Init</A></B>()</CODE>
<BR>
This macro initialises the RF module.</TD>
</TR>
</TABLE>
<P>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Function Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE></CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.SendBuffer">RF.SendBuffer</A></B>( w FSR )</CODE>
<BR>
This function sends a complete data buffer to the air.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE></CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.Send_Data">RF.Send_Data</A></B>( w )</CODE>
<BR>
This function will transmit one byte of data over the RF antenna.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE></CODE></FONT></TD>
<TD><CODE><B><A HREF="RF.html#RF.Send_Header">RF.Send_Header</A></B>()</CODE>
<BR>
This function will transmit the header over the RF antenna.</TD>
</TR>
</TABLE>
<P>
<!-- ============ CONSTANT DETAIL =========== -->
<A NAME="constant_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constant Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="RF.T_HDR_INIT"></A><H3>
RF.T_HDR_INIT</H3>
<DL>
<DD> The initial high time of the header in micro seconds.<BR><BR>Default value = .4100
<P>
<DL>
</DL>
</DL>
<B> Transmission frame:</B><p style="position:relative;" id="RF_T_HDR_INIT_time_0_p"><IMG SRC="RF.T_HDR_INIT_time_0.jpg" NAME="RF_T_HDR_INIT_time_0" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_T_HDR_INIT_time_0_res()",100);var RF_T_HDR_INIT_time_0_init = document.RF_T_HDR_INIT_time_0.width ;function RF_T_HDR_INIT_time_0_res(){try{if(RF_T_HDR_INIT_time_0_init > parent.classFrame.innerWidth-45) document.RF_T_HDR_INIT_time_0.width=parent.classFrame.innerWidth-45;else{ document.RF_T_HDR_INIT_time_0.width=RF_T_HDR_INIT_time_0_init; document.getElementById("RF_T_HDR_INIT_time_0_p").style.left= ((parent.classFrame.innerWidth-document.RF_T_HDR_INIT_time_0.width-45) / 2) + "px"; document.getElementById("RF_T_HDR_INIT_time_0_p").style.width= document.RF_T_HDR_INIT_time_0.width + "px";}}catch(Exception){}}</SCRIPT><HR>
<A NAME="RF.T_HDR_GAP"></A><H3>
RF.T_HDR_GAP</H3>
<DL>
<DD> The time of the gap between the initial high time and the filter-sequence.<BR><BR>Default value = .550
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="RF.T_HDR_HIGH"></A><H3>
RF.T_HDR_HIGH</H3>
<DL>
<DD> The high time of the filter-sequence.<BR><BR>Default value = .2100
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="RF.T_HDR_LOW"></A><H3>
RF.T_HDR_LOW</H3>
<DL>
<DD> The low time of the filter-sequence.<BR><BR>Default value = .2100
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="RF.T_STEP"></A><H3>
RF.T_STEP</H3>
<DL>
<DD> This time adjusts the bitrate of the data transmission.<BR><BR>Default value = .250
<P>
<DL>
</DL>
</DL>
<B> A pwm coded '1':</B><p style="position:relative;" id="RF_T_STEP_time_0_p"><IMG SRC="RF.T_STEP_time_0.jpg" NAME="RF_T_STEP_time_0" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_T_STEP_time_0_res()",100);var RF_T_STEP_time_0_init = document.RF_T_STEP_time_0.width ;function RF_T_STEP_time_0_res(){try{if(RF_T_STEP_time_0_init > parent.classFrame.innerWidth-45) document.RF_T_STEP_time_0.width=parent.classFrame.innerWidth-45;else{ document.RF_T_STEP_time_0.width=RF_T_STEP_time_0_init; document.getElementById("RF_T_STEP_time_0_p").style.left= ((parent.classFrame.innerWidth-document.RF_T_STEP_time_0.width-45) / 2) + "px"; document.getElementById("RF_T_STEP_time_0_p").style.width= document.RF_T_STEP_time_0.width + "px";}}catch(Exception){}}</SCRIPT><B> A pwm coded '0':</B><p style="position:relative;" id="RF_T_STEP_time_1_p"><IMG SRC="RF.T_STEP_time_1.jpg" NAME="RF_T_STEP_time_1" BORDER="0"></p><SCRIPT type="text/javascript">window.setInterval("RF_T_STEP_time_1_res()",100);var RF_T_STEP_time_1_init = document.RF_T_STEP_time_1.width ;function RF_T_STEP_time_1_res(){try{if(RF_T_STEP_time_1_init > parent.classFrame.innerWidth-45) document.RF_T_STEP_time_1.width=parent.classFrame.innerWidth-45;else{ document.RF_T_STEP_time_1.width=RF_T_STEP_time_1_init; document.getElementById("RF_T_STEP_time_1_p").style.left= ((parent.classFrame.innerWidth-document.RF_T_STEP_time_1.width-45) / 2) + "px"; document.getElementById("RF_T_STEP_time_1_p").style.width= document.RF_T_STEP_time_1.width + "px";}}catch(Exception){}}</SCRIPT><HR>
<P>
<!-- ============ MACRO DETAIL ========== -->
<A NAME="macro_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Macro Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="RF.Init"></A><H3>
RF.Init</H3>
<PRE>
<B>RF.Init</B>()</PRE>
<P>
<DL>
<DD> This macro initialises the RF module. Initialize the Delay module first.
<P>
<P>
</DL>
<HR>
<P>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="RF.SendBuffer"></A><H3>
RF.SendBuffer</H3>
<PRE>
<B>RF.SendBuffer</B>( w FSR )</PRE>
<P>
<DL>
<DD> This function sends a complete data buffer to the air. The Buffer has to be on Bank0 or Bank1
<P>
<DD><DL>
<DT><B>Parameters:</B>
<DD><CODE>w</CODE> - The amount of bytes to be sent </DD>
<DD><CODE>FSR</CODE> - The start address of the buffer </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Stacklevel:</B><DD>3</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>movlw </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">AFE.ConfData </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">FSR </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">0x07 </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.SendBuffer </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This sends 7 bytes of the buffer "AFE.ConfMap" to the air </DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF.Send_Data"></A><H3>
RF.Send_Data</H3>
<PRE>
<B>RF.Send_Data</B>( w )</PRE>
<P>
<DL>
<DD> This function will transmit one byte of data over the RF antenna. The value in w will be sent to the air over the RF antenna.
<P>
<DD><DL>
<DT><B>Parameters:</B>
<DD><CODE>w</CODE> - The Byte of data to be sent </DD>
</DL></DD>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD> INTCON OPTION_REG </DD></DL>
</DD>
<DD><DL>
<DT><B>Calls subroutines:</B><PRE> Delay.start Delay.wait
</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>movlw </B></FONT></CODE></TD> <TD><CODE><FONT COLOR="#AA22AA">0xf0 </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.Send_Data </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This sends 0xf0 over the RF antenna</DD></DL>
</DD>
</DL>
<HR>
<A NAME="RF.Send_Header"></A><H3>
RF.Send_Header</H3>
<PRE>
<B>RF.Send_Header</B>()</PRE>
<P>
<DL>
<DD> This function will transmit the header over the RF antenna. The header is used to activate the receiver. Data format: (4ms + 500us + 2ms + 2ms)
<P>
<P>
<DD><DL>
<DT><B>Used SFRs:</B><DD> INTCON OPTION_REG </DD></DL>
</DD>
<DD><DL>
<DT><B>Calls subroutines:</B><PRE> Delay.start Delay.wait
</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.Send_Header </FONT></CODE></TD></TR></TABLE></CODE></DD></DL>
</DD>
<DD><DL>
<DT><B>Description:</B><DD> This sends the header</DD></DL>
</DD>
</DL>
<HR>
<!-- ========= END OF CLASS DATA ========= -->
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -