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

📄 pm_8c.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 5 页
字号:
          <td class="paramtype">int&nbsp;</td>          <td class="paramname"> <em>module</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="pm_8c-source.html#l00398">398</a> of file <a class="el" href="pm_8c-source.html">pm.c</a>.<p>References <a class="el" href="pm_8h-source.html#l00042">PM_AHB_DOMAIN</a>, <a class="el" href="pm_8h-source.html#l00057">PM_APBA_DOMAIN</a>, <a class="el" href="pm_8h-source.html#l00078">PM_APBB_DOMAIN</a>, <a class="el" href="pm_8h-source.html#l00018">PM_INVALID_ARGUMENT</a>, <a class="el" href="pm_8c-source.html#l00195">pm_read_clock_domain_scaler()</a>, and <a class="el" href="pm_8c-source.html#l00173">pm_read_mclk()</a>.<p>Referenced by <a class="el" href="usart__example2_8c-source.html#l00022">main()</a>, and <a class="el" href="usart__example2_8c-source.html#l00115">print_pm_stats()</a>.<div class="fragment"><pre class="fragment"><a name="l00399"></a>00399 {<a name="l00400"></a>00400         <span class="keywordtype">int</span> clk, domain, divider;<a name="l00401"></a>00401 <a name="l00402"></a>00402         clk = <a class="code" href="pm_8c.html#14bd8bcf2023d7eef7fa2575fe369900">pm_read_mclk</a>();<a name="l00403"></a>00403 <a name="l00404"></a>00404         divider = <a class="code" href="pm_8c.html#0f2a943733b661e4eaf234349224886c">pm_read_clock_domain_scaler</a>(<a class="code" href="pm_8h.html#37e9895746ca50f3d86ad22f910e744c">PM_AHB_DOMAIN</a>);<a name="l00405"></a>00405 <a name="l00406"></a>00406         domain = module/32;<a name="l00407"></a>00407         <span class="keywordflow">if</span>( domain==<a class="code" href="pm_8h.html#1d81d3d60bfe377c184d6f2920459e0b">PM_APBA_DOMAIN</a>)<a name="l00408"></a>00408                 divider = divider * <a class="code" href="pm_8c.html#0f2a943733b661e4eaf234349224886c">pm_read_clock_domain_scaler</a>(<a class="code" href="pm_8h.html#1d81d3d60bfe377c184d6f2920459e0b">PM_APBA_DOMAIN</a>);<a name="l00409"></a>00409         <span class="keywordflow">else</span> <span class="keywordflow">if</span>( domain==<a class="code" href="pm_8h.html#8581f5aa9839b0f01556facfd429a105">PM_APBB_DOMAIN</a>)<a name="l00410"></a>00410                 divider = divider * <a class="code" href="pm_8c.html#0f2a943733b661e4eaf234349224886c">pm_read_clock_domain_scaler</a>(<a class="code" href="pm_8h.html#8581f5aa9839b0f01556facfd429a105">PM_APBB_DOMAIN</a>);<a name="l00411"></a>00411         <span class="keywordflow">else</span><a name="l00412"></a>00412                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00413"></a>00413 <a name="l00414"></a>00414         <span class="comment">/* CHECK WHETHER THE CLOCK IS MASKED */</span><a name="l00415"></a>00415 <a name="l00416"></a>00416         <span class="keywordflow">return</span> clk/divider;<a name="l00417"></a>00417 }</pre></div><p><p>Here is the call graph for this function:</div></div><p><a class="anchor" name="ec52b76e10f4f99b5acb6cf2d8be6cba"></a><!-- doxytag: member="pm.c::pm_read_osc" ref="ec52b76e10f4f99b5acb6cf2d8be6cba" args="(unsigned int osc)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int pm_read_osc           </td>          <td>(</td>          <td class="paramtype">unsigned int&nbsp;</td>          <td class="paramname"> <em>osc</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="pm_8c-source.html#l00124">124</a> of file <a class="el" href="pm_8c-source.html">pm.c</a>.<p>References <a class="el" href="pm_8h-source.html#l00018">PM_INVALID_ARGUMENT</a>, <a class="el" href="pm_8h-source.html#l00008">PM_OSC0_HZ</a>, and <a class="el" href="pm_8h-source.html#l00009">PM_OSC1_HZ</a>.<div class="fragment"><pre class="fragment"><a name="l00125"></a>00125 {<a name="l00126"></a>00126         <span class="keywordflow">if</span>(osc == 0)<a name="l00127"></a>00127                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#c6d5b458dd5c2308f7e6cdfb96519aa4">PM_OSC0_HZ</a>;<a name="l00128"></a>00128         <span class="keywordflow">else</span> <span class="keywordflow">if</span>(osc == 1)<a name="l00129"></a>00129                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#6e188d537a626965bfe9b442a9e384ce">PM_OSC1_HZ</a>;<a name="l00130"></a>00130         <span class="keywordflow">else</span><a name="l00131"></a>00131                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00132"></a>00132 }</pre></div><p></div></div><p><a class="anchor" name="54166687179ae6231608317171b8d62e"></a><!-- doxytag: member="pm.c::pm_read_pll_frequency" ref="54166687179ae6231608317171b8d62e" args="(unsigned int pll)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int pm_read_pll_frequency           </td>          <td>(</td>          <td class="paramtype">unsigned int&nbsp;</td>          <td class="paramname"> <em>pll</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="pm_8c-source.html#l00095">95</a> of file <a class="el" href="pm_8c-source.html">pm.c</a>.<p>References <a class="el" href="pm_8h-source.html#l00018">PM_INVALID_ARGUMENT</a>, <a class="el" href="pm_8h-source.html#l00008">PM_OSC0_HZ</a>, <a class="el" href="pm_8h-source.html#l00009">PM_OSC1_HZ</a>, <a class="el" href="pm_8h-source.html#l00014">PM_PLL0</a>, and <a class="el" href="pm_8h-source.html#l00015">PM_PLL1</a>.<p>Referenced by <a class="el" href="pm_8c-source.html#l00173">pm_read_mclk()</a>, and <a class="el" href="usart__example2_8c-source.html#l00115">print_pm_stats()</a>.<div class="fragment"><pre class="fragment"><a name="l00096"></a>00096 {<a name="l00097"></a>00097         <span class="keyword">volatile</span> avr32_sm_t *sm = (<span class="keywordtype">void</span> *) AVR32_SM_ADDRESS;<a name="l00098"></a>00098         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mul,div,osc;<a name="l00099"></a>00099 <a name="l00100"></a>00100         <span class="keywordflow">if</span> ( pll==<a class="code" href="pm_8h.html#b496d79f3a521e4335d24be892bf085a">PM_PLL0</a> ){<a name="l00101"></a>00101                 mul = ( (sm-&gt;pm_pll0&amp;AVR32_SM_PM_PLL0_PLLMUL_MASK)&gt;&gt;AVR32_SM_PM_PLL0_PLLMUL_OFFSET)+1;<a name="l00102"></a>00102                 div = ( (sm-&gt;pm_pll0&amp;AVR32_SM_PM_PLL0_PLLDIV_MASK)&gt;&gt;AVR32_SM_PM_PLL0_PLLDIV_OFFSET)+1;<a name="l00103"></a>00103                 <span class="keywordflow">if</span>((sm-&gt;pm_pll0&amp;AVR32_SM_PM_PLL0_PLLOSC_MASK)&gt;&gt;AVR32_SM_PM_PLL0_PLLOSC_OFFSET) <span class="comment">/* Oscillator #1 */</span><a name="l00104"></a>00104                         osc = <a class="code" href="pm_8h.html#6e188d537a626965bfe9b442a9e384ce">PM_OSC1_HZ</a>;<a name="l00105"></a>00105                 <span class="keywordflow">else</span><a name="l00106"></a>00106                         osc = <a class="code" href="pm_8h.html#c6d5b458dd5c2308f7e6cdfb96519aa4">PM_OSC0_HZ</a>;<a name="l00107"></a>00107         }<a name="l00108"></a>00108         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( pll==<a class="code" href="pm_8h.html#c730640bba805bb63795115fdc163c7f">PM_PLL1</a> ){<a name="l00109"></a>00109                 mul = ( (sm-&gt;pm_pll1&amp;AVR32_SM_PM_PLL1_PLLMUL_MASK)&gt;&gt;AVR32_SM_PM_PLL1_PLLMUL_OFFSET)+1;<a name="l00110"></a>00110                 div = ( (sm-&gt;pm_pll1&amp;AVR32_SM_PM_PLL1_PLLDIV_MASK)&gt;&gt;AVR32_SM_PM_PLL1_PLLDIV_OFFSET)+1;<a name="l00111"></a>00111                 <span class="keywordflow">if</span>((sm-&gt;pm_pll1&amp;AVR32_SM_PM_PLL1_PLLOSC_MASK)&gt;&gt;AVR32_SM_PM_PLL1_PLLOSC_OFFSET) <span class="comment">/* Oscillator #1 */</span><a name="l00112"></a>00112                         osc = <a class="code" href="pm_8h.html#6e188d537a626965bfe9b442a9e384ce">PM_OSC1_HZ</a>;<a name="l00113"></a>00113                 <span class="keywordflow">else</span><a name="l00114"></a>00114                         osc = <a class="code" href="pm_8h.html#c6d5b458dd5c2308f7e6cdfb96519aa4">PM_OSC0_HZ</a>;<a name="l00115"></a>00115         }<a name="l00116"></a>00116         <span class="keywordflow">else</span><a name="l00117"></a>00117                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00118"></a>00118 <a name="l00119"></a>00119         <span class="keywordflow">return</span> (mul*osc)/div;<a name="l00120"></a>00120 }</pre></div><p></div></div><p><a class="anchor" name="bc44409660aa80132fb1f45546fbc5da"></a><!-- doxytag: member="pm.c::pm_read_scaling_register" ref="bc44409660aa80132fb1f45546fbc5da" args="(void)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int pm_read_scaling_register           </td>          <td>(</td>          <td class="paramtype">void&nbsp;</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="pm_8c-source.html#l00276">276</a> of file <a class="el" href="pm_8c-source.html">pm.c</a>.<div class="fragment"><pre class="fragment"><a name="l00277"></a>00277 {<a name="l00278"></a>00278         <span class="keyword">volatile</span> avr32_sm_t *sm = (<span class="keywordtype">void</span> *) AVR32_SM_ADDRESS;<a name="l00279"></a>00279 <a name="l00280"></a>00280         <span class="keywordflow">return</span> sm-&gt;pm_cksel;<a name="l00281"></a>00281 }</pre></div><p></div></div><p><a class="anchor" name="f4866c8d515de18a7e6438de6721af48"></a><!-- doxytag: member="pm.c::pm_reset" ref="f4866c8d515de18a7e6438de6721af48" args="(void)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int pm_reset           </td>          <td>(</td>          <td class="paramtype">void&nbsp;</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="pm_8c-source.html#l00004">4</a> of file <a class="el" href="pm_8c-source.html">pm.c</a>.<p>References <a class="el" href="pm_8h-source.html#l00011">PM_OSC0</a>, <a class="el" href="pm_8c-source.html#l00135">pm_set_mclk_source()</a>, <a class="el" href="pm_8h-source.html#l00017">PM_SUCCESS</a>, and <a class="el" href="pm_8c-source.html#l00033">pm_wait_for_lock()</a>.<p>Referenced by <a class="el" href="usart__example2_8c-source.html#l00022">main()</a>.<div class="fragment"><pre class="fragment"><a name="l00005"></a>00005 {<a name="l00006"></a>00006         avr32_sm_t *sm = (<span class="keywordtype">void</span> *) AVR32_SM_ADDRESS;<a name="l00007"></a>00007         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> status = <a class="code" href="pm_8h.html#ddf49f5fed3274da72c23555bd623a3a">PM_SUCCESS</a>;<a name="l00008"></a>00008         <span class="keywordtype">int</span> disable_clock_mask = 0xFFFFffff;<a name="l00009"></a>00009 <a name="l00010"></a>00010         <a class="code" href="pm_8c.html#5ee9297ef8a710f6f1c7b3f60d6f7369">pm_set_mclk_source</a>(<a class="code" href="pm_8h.html#b6ed62883d39ae18a209e0a3dbfbeb40">PM_OSC0</a>);<a name="l00011"></a>00011 <a name="l00012"></a>00012         sm-&gt;pm_cksel = 0x00000000;<a name="l00013"></a>00013         status |= <a class="code" href="pm_8c.html#88dfe542f765ac33d0eeee7d0eff486c">pm_wait_for_lock</a>(AVR32_SM_PM_ISR_CKRDY);<a name="l00014"></a>00014 <a name="l00015"></a>00015         sm-&gt;pm_cpu_mask = disable_clock_mask;<a name="l00016"></a>00016         status |= <a class="code" href="pm_8c.html#88dfe542f765ac33d0eeee7d0eff486c">pm_wait_for_lock</a>(AVR32_SM_PM_ISR_MSKRDY);<a name="l00017"></a>00017 <a name="l00018"></a>00018         sm-&gt;pm_ahb_mask = disable_clock_mask;

⌨️ 快捷键说明

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