📄 pm_8c.html
字号:
<td class="paramtype">int </td> <td class="paramname"> <em>module</em> </td> <td> ) </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 </td> <td class="paramname"> <em>osc</em> </td> <td> ) </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 </td> <td class="paramname"> <em>pll</em> </td> <td> ) </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->pm_pll0&AVR32_SM_PM_PLL0_PLLMUL_MASK)>>AVR32_SM_PM_PLL0_PLLMUL_OFFSET)+1;<a name="l00102"></a>00102 div = ( (sm->pm_pll0&AVR32_SM_PM_PLL0_PLLDIV_MASK)>>AVR32_SM_PM_PLL0_PLLDIV_OFFSET)+1;<a name="l00103"></a>00103 <span class="keywordflow">if</span>((sm->pm_pll0&AVR32_SM_PM_PLL0_PLLOSC_MASK)>>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->pm_pll1&AVR32_SM_PM_PLL1_PLLMUL_MASK)>>AVR32_SM_PM_PLL1_PLLMUL_OFFSET)+1;<a name="l00110"></a>00110 div = ( (sm->pm_pll1&AVR32_SM_PM_PLL1_PLLDIV_MASK)>>AVR32_SM_PM_PLL1_PLLDIV_OFFSET)+1;<a name="l00111"></a>00111 <span class="keywordflow">if</span>((sm->pm_pll1&AVR32_SM_PM_PLL1_PLLOSC_MASK)>>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 </td> <td class="paramname"> </td> <td> ) </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->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 </td> <td class="paramname"> </td> <td> ) </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->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->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->pm_ahb_mask = disable_clock_mask;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -