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

📄 pm_8c-source.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00390"></a>00390         sm-&gt;pm_cpu_mask = 0xFFFFffff;<a name="l00391"></a>00391         sm-&gt;pm_ahb_mask = 0xFFFFffff;<a name="l00392"></a>00392         sm-&gt;pm_apba_mask = 0xFFFFffff;<a name="l00393"></a>00393         sm-&gt;pm_apbb_mask = 0xFFFFffff;<a name="l00394"></a>00394 <a name="l00395"></a>00395         <a class="code" href="pm_8c.html#88dfe542f765ac33d0eeee7d0eff486c">pm_wait_for_lock</a>(AVR32_SM_PM_ISR_MSKRDY);<a name="l00396"></a>00396 }<a name="l00397"></a>00397 <a name="l00398"></a><a class="code" href="pm_8h.html#9eeb911aac8a1d1e6bd05e3ad80f90d8">00398</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#9eeb911aac8a1d1e6bd05e3ad80f90d8">pm_read_module_frequency</a>(<span class="keywordtype">int</span> module)<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 }<a name="l00418"></a>00418 <a name="l00419"></a>00419 <span class="comment">/* Enable interrupt */</span><a name="l00420"></a><a class="code" href="pm_8h.html#0f8568eb40d8a9599ebde49ab0bda278">00420</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#0f8568eb40d8a9599ebde49ab0bda278">pm_interrupt_enable</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source )<a name="l00421"></a>00421 {<a name="l00422"></a>00422         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00423"></a>00423 <a name="l00424"></a>00424         <span class="keywordflow">if</span>( source &gt; (<a class="code" href="pm_8h.html#5dcfcaccba3bf44f55edb3551c022f04">PM_INT_SOURCES</a>-1) )<a name="l00425"></a>00425                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00426"></a>00426         <span class="keywordflow">else</span>{<a name="l00427"></a>00427                 sm-&gt;pm_ier |= (1 &lt;&lt; source);<a name="l00428"></a>00428                 <span class="keywordflow">return</span> 0;<a name="l00429"></a>00429         }<a name="l00430"></a>00430 }<a name="l00431"></a>00431 <a name="l00432"></a>00432 <a name="l00433"></a>00433 <a name="l00434"></a>00434 <span class="comment">/* Disable interrupt*/</span><a name="l00435"></a><a class="code" href="pm_8h.html#722e55d44f9cbb606970a6c99f52a6f4">00435</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#722e55d44f9cbb606970a6c99f52a6f4">pm_interrupt_disable</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source )<a name="l00436"></a>00436 {<a name="l00437"></a>00437         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00438"></a>00438 <a name="l00439"></a>00439         <span class="keywordflow">if</span>( source &gt; (<a class="code" href="pm_8h.html#5dcfcaccba3bf44f55edb3551c022f04">PM_INT_SOURCES</a>-1) )<a name="l00440"></a>00440                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00441"></a>00441         <span class="keywordflow">else</span>{<a name="l00442"></a>00442                 sm-&gt;pm_idr |= (1 &lt;&lt; source);<a name="l00443"></a>00443                 <span class="keywordflow">return</span> 0;<a name="l00444"></a>00444         }<a name="l00445"></a>00445 }<a name="l00446"></a>00446 <a name="l00447"></a>00447 <a name="l00448"></a>00448 <a name="l00449"></a>00449 <span class="comment">/* Status of interrupt*/</span><a name="l00450"></a><a class="code" href="pm_8h.html#20b28e164b7c9bb79db19ad3c824ccfe">00450</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#20b28e164b7c9bb79db19ad3c824ccfe">pm_interrupt_status</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source )<a name="l00451"></a>00451 {<a name="l00452"></a>00452         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00453"></a>00453 <a name="l00454"></a>00454         <span class="keywordflow">if</span> ( source &gt; (<a class="code" href="pm_8h.html#5dcfcaccba3bf44f55edb3551c022f04">PM_INT_SOURCES</a>-1) )<a name="l00455"></a>00455                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00456"></a>00456         <span class="keywordflow">else</span><a name="l00457"></a>00457                 <span class="keywordflow">return</span> (sm-&gt;pm_isr &amp; source)&gt;&gt;source;<a name="l00458"></a>00458 }<a name="l00459"></a>00459 <a name="l00460"></a>00460 <a name="l00461"></a>00461 <a name="l00462"></a>00462 <span class="comment">/* Clear interrupt */</span><a name="l00463"></a><a class="code" href="pm_8h.html#afabed3d352c08a31e65299bf82c6f14">00463</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#afabed3d352c08a31e65299bf82c6f14">pm_interrupt_clear</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source )<a name="l00464"></a>00464 {<a name="l00465"></a>00465         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00466"></a>00466 <a name="l00467"></a>00467         <span class="keywordflow">if</span>( source &gt; (<a class="code" href="pm_8h.html#5dcfcaccba3bf44f55edb3551c022f04">PM_INT_SOURCES</a>-1) )<a name="l00468"></a>00468                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00469"></a>00469         <span class="keywordflow">else</span>{<a name="l00470"></a>00470                 sm-&gt;pm_icr |= (1 &lt;&lt; source);<a name="l00471"></a>00471                 <span class="keywordflow">return</span> 0;<a name="l00472"></a>00472         }<a name="l00473"></a>00473 }<a name="l00474"></a>00474 <a name="l00475"></a>00475 <a name="l00476"></a>00476 <a name="l00477"></a>00477 <span class="comment">/* Clear interrupt */</span><a name="l00478"></a><a class="code" href="pm_8h.html#80c6af2ba13603d8940b9ac054df89b8">00478</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#80c6af2ba13603d8940b9ac054df89b8">pm_interrupt_mask</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source )<a name="l00479"></a>00479 {<a name="l00480"></a>00480         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00481"></a>00481 <a name="l00482"></a>00482         <span class="keywordflow">if</span>( source &gt; (<a class="code" href="pm_8h.html#5dcfcaccba3bf44f55edb3551c022f04">PM_INT_SOURCES</a>-1) )<a name="l00483"></a>00483                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00484"></a>00484         <span class="keywordflow">else</span>{<a name="l00485"></a>00485                 <span class="keywordflow">return</span> (sm-&gt;pm_ier &amp; source ) &gt;&gt; source ;<a name="l00486"></a>00486         }<a name="l00487"></a>00487 }<a name="l00488"></a>00488 <a name="l00489"></a>00489 <a name="l00490"></a>00490 <a name="l00491"></a>00491 <span class="comment">/* Modify the generic clock */</span><a name="l00492"></a><a class="code" href="pm_8h.html#c36fb27df09040fa236cf2a9b2c13684">00492</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#c36fb27df09040fa236cf2a9b2c13684">pm_generic_clock_control</a>( <span class="keyword">struct</span> <a class="code" href="structgen__clk__opt__t.html">gen_clk_opt_t</a> *opt)<a name="l00493"></a>00493 {<a name="l00494"></a>00494         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00495"></a>00495 <a name="l00496"></a>00496         <span class="comment">/* Check whether div-field is larger than 8 bits */</span><a name="l00497"></a>00497         <span class="keywordflow">if</span>( opt-&gt;<a class="code" href="structgen__clk__opt__t.html#1c0f4c520fa0778b49d0f3a7217d2bc7">div</a> &gt; 0xFF)<a name="l00498"></a>00498                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00499"></a>00499         <span class="comment">/* Check for valid single bits */</span><a name="l00500"></a>00500         <span class="keywordflow">if</span> ( ((opt-&gt;<a class="code" href="structgen__clk__opt__t.html#87c4374f358f08b475f338cbce4e6d8b">diven</a>)|(opt-&gt;<a class="code" href="structgen__clk__opt__t.html#d5fb42c07bde892e2f63099bdaca2ec0">cen</a>)|(opt-&gt;<a class="code" href="structgen__clk__opt__t.html#12ed7146381730f8cfea4ae246b00d26">pllsel</a>)|(opt-&gt;<a class="code" href="structgen__clk__opt__t.html#4d4b4915b1f64cc52d68d63ca425c2eb">oscsel</a>)) &gt; 1)<a name="l00501"></a>00501                 <span class="keywordflow">return</span> <a class="code" href="pm_8h.html#fb0c09824dd7de95fd1557e20c731400">PM_INVALID_ARGUMENT</a>;<a name="l00502"></a>00502         <span class="keywordflow">else</span><a name="l00503"></a>00503                 sm-&gt;pm_gcctrl = (opt-&gt;<a class="code" href="structgen__clk__opt__t.html#1c0f4c520fa0778b49d0f3a7217d2bc7">div</a> &lt;&lt; AVR32_SM_PM_GCCTRL_DIV_OFFSET)| \<a name="l00504"></a>00504                         (opt-&gt;<a class="code" href="structgen__clk__opt__t.html#87c4374f358f08b475f338cbce4e6d8b">diven</a> &lt;&lt; AVR32_SM_PM_GCCTRL_DIVEN_OFFSET)|\<a name="l00505"></a>00505                         (opt-&gt;<a class="code" href="structgen__clk__opt__t.html#d5fb42c07bde892e2f63099bdaca2ec0">cen</a> &lt;&lt; AVR32_SM_PM_GCCTRL_CEN_OFFSET)|\<a name="l00506"></a>00506                         (opt-&gt;<a class="code" href="structgen__clk__opt__t.html#12ed7146381730f8cfea4ae246b00d26">pllsel</a> &lt;&lt; AVR32_SM_PM_GCCTRL_PLLSEL_OFFSET)|\<a name="l00507"></a>00507                         (opt-&gt;<a class="code" href="structgen__clk__opt__t.html#4d4b4915b1f64cc52d68d63ca425c2eb">oscsel</a> &lt;&lt; AVR32_SM_PM_GCCTRL_OSCSEL_OFFSET);<a name="l00508"></a>00508 <a name="l00509"></a>00509         <span class="keywordflow">return</span> 0;<a name="l00510"></a>00510 } <span class="comment">/* End pm_generic_clock_control() */</span><a name="l00511"></a>00511 <a name="l00512"></a>00512 <span class="comment">/* RC errors */</span><a name="l00513"></a><a class="code" href="pm_8c.html#555db77a9952c4b3b3622a5552fce61e">00513</a> <span class="keywordtype">int</span> <a class="code" href="pm_8c.html#555db77a9952c4b3b3622a5552fce61e">pm_rc_errors</a>(<span class="keywordtype">void</span>)<a name="l00514"></a>00514 {<a name="l00515"></a>00515         avr32_sm_t *sm = (<span class="keywordtype">void</span> *)AVR32_SM_ADDRESS;<a name="l00516"></a>00516         <span class="comment">/* return the bitfield */</span><a name="l00517"></a>00517         <span class="keywordflow">return</span>  sm-&gt;rtc_icr;<a name="l00518"></a>00518 }<a name="l00519"></a>00519 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu May 10 14:14:48 2007 for AVR321000 Communication with the AVR32 USART by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body></html>

⌨️ 快捷键说明

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