interrupts_hc32l136.c 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. /******************************************************************************
  2. * Copyright (C) 2018, Huada Semiconductor Co.,Ltd All rights reserved.
  3. *
  4. * This software is owned and published by:
  5. * Huada Semiconductor Co.,Ltd ("HDSC").
  6. *
  7. * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
  8. * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
  9. *
  10. * This software contains source code for use with HDSC
  11. * components. This software is licensed by HDSC to be adapted only
  12. * for use in systems utilizing HDSC components. HDSC shall not be
  13. * responsible for misuse or illegal use of this software for devices not
  14. * supported herein. HDSC is providing this software "AS IS" and will
  15. * not be responsible for issues arising from incorrect user implementation
  16. * of the software.
  17. *
  18. * Disclaimer:
  19. * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
  20. * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
  21. * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
  22. * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
  23. * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
  24. * WARRANTY OF NONINFRINGEMENT.
  25. * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
  26. * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
  27. * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
  28. * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
  29. * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
  30. * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
  31. * SAVINGS OR PROFITS,
  32. * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  33. * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
  34. * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
  35. * FROM, THE SOFTWARE.
  36. *
  37. * This software may be replicated in part or whole for the licensed use,
  38. * with the restriction that this Disclaimer and Copyright notice must be
  39. * included with each copy of this software, whether used in part or whole,
  40. * at all times.
  41. */
  42. /******************************************************************************/
  43. /** \file interrupts_hc32l136.c
  44. **
  45. ** Interrupt management
  46. ** @link Driver Group Some description @endlink
  47. **
  48. ** - 2018-04-15 1.0 Lux First version.
  49. **
  50. **
  51. ******************************************************************************/
  52. /*******************************************************************************
  53. * Include files
  54. ******************************************************************************/
  55. #include "ddl.h"
  56. #include "interrupts_hc32l136.h"
  57. void Gpio_IRQHandler(uint8_t u8Param);
  58. __WEAKDEF void Dma_IRQHandler(uint8_t u8Param);
  59. void Uart_IRQHandler(uint8_t u8Param);
  60. __WEAKDEF void LpUart_IRQHandler(uint8_t u8Param);
  61. __WEAKDEF void Spi_IRQHandler(uint8_t u8Param);
  62. __WEAKDEF void I2c_IRQHandler(uint8_t u8Param);
  63. __WEAKDEF void Tim_IRQHandler(uint8_t u8Param);
  64. __WEAKDEF void Tim3_IRQHandler(uint8_t u8Param);
  65. __WEAKDEF void Adt_IRQHandler(uint8_t u8Param);
  66. __WEAKDEF void LpTim_IRQHandler(uint8_t u8Param);
  67. __WEAKDEF void Pca_IRQHandler(uint8_t u8Param);
  68. __WEAKDEF void Wdt_IRQHandler(uint8_t u8Param);
  69. __WEAKDEF void Vc_IRQHandler(uint8_t u8Param);
  70. __WEAKDEF void Rtc_IRQHandler(uint8_t u8Param);
  71. __WEAKDEF void Adc_IRQHandler(uint8_t u8Param);
  72. __WEAKDEF void Pcnt_IRQHandler(uint8_t u8Param);
  73. __WEAKDEF void Lvd_IRQHandler(uint8_t u8Param);
  74. __WEAKDEF void Lcd_IRQHandler(uint8_t u8Param);
  75. __WEAKDEF void EfRam_IRQHandler(uint8_t u8Param);
  76. __WEAKDEF void ClkTrim_IRQHandler(uint8_t u8Param);
  77. /**
  78. *******************************************************************************
  79. ** \brief NVIC 中断使能
  80. **
  81. ** \param [in] enIrq 中断号枚举类型
  82. ** \param [in] enLevel 中断优先级枚举类型
  83. ** \param [in] bEn 中断开关
  84. ** \retval Ok 设置成功
  85. ** 其他值 设置失败
  86. ******************************************************************************/
  87. void EnableNvic(IRQn_Type enIrq, en_irq_level_t enLevel, boolean_t bEn)
  88. {
  89. NVIC_ClearPendingIRQ(enIrq);
  90. NVIC_SetPriority(enIrq, enLevel);
  91. if (TRUE == bEn)
  92. {
  93. NVIC_EnableIRQ(enIrq);
  94. }
  95. else
  96. {
  97. NVIC_DisableIRQ(enIrq);
  98. }
  99. }
  100. /**
  101. *******************************************************************************
  102. ** \brief NVIC hardware fault 中断实现
  103. ** 用于单步调试功能
  104. **
  105. ** \retval
  106. ******************************************************************************/
  107. //void HardFault_Handler(void)
  108. //{
  109. // volatile int a = 0;
  110. // while( 0 == a)
  111. // {
  112. // ;
  113. // }
  114. //}
  115. /**
  116. *******************************************************************************
  117. ** \brief GPIO PortA 中断处理函数
  118. **
  119. ** \retval
  120. ******************************************************************************/
  121. void PORTA_IRQHandler(void)
  122. {
  123. Gpio_IRQHandler(0);
  124. }
  125. /**
  126. *******************************************************************************
  127. ** \brief GPIO PortB 中断处理函数
  128. **
  129. ** \retval
  130. ******************************************************************************/
  131. void PORTB_IRQHandler(void)
  132. {
  133. Gpio_IRQHandler(1);
  134. }
  135. /**
  136. *******************************************************************************
  137. ** \brief GPIO PortC 中断处理函数
  138. **
  139. ** \retval
  140. ******************************************************************************/
  141. void PORTC_IRQHandler(void)
  142. {
  143. Gpio_IRQHandler(2);
  144. }
  145. /**
  146. *******************************************************************************
  147. ** \brief GPIO PortD 中断处理函数
  148. **
  149. ** \retval
  150. ******************************************************************************/
  151. void PORTD_IRQHandler(void)
  152. {
  153. Gpio_IRQHandler(3);
  154. }
  155. /**
  156. *******************************************************************************
  157. ** \brief DMAC 中断处理函数
  158. **
  159. ** \retval
  160. ******************************************************************************/
  161. void DMAC_IRQHandler(void)
  162. {
  163. Dma_IRQHandler(0);
  164. }
  165. /**
  166. *******************************************************************************
  167. ** \brief UART0 串口0 中断处理函数
  168. **
  169. ** \retval
  170. ******************************************************************************/
  171. void UART0_IRQHandler(void)
  172. {
  173. Uart_IRQHandler(0);
  174. }
  175. /**
  176. *******************************************************************************
  177. ** \brief UART1 串口1 中断处理函数
  178. **
  179. ** \retval
  180. ******************************************************************************/
  181. void UART1_IRQHandler(void)
  182. {
  183. Uart_IRQHandler(1);
  184. }
  185. /**
  186. *******************************************************************************
  187. ** \brief LPUART0 低功耗串口0 中断处理函数
  188. **
  189. ** \retval
  190. ******************************************************************************/
  191. void LPUART0_IRQHandler(void)
  192. {
  193. LpUart_IRQHandler(0);
  194. }
  195. /**
  196. *******************************************************************************
  197. ** \brief LPUART1 低功耗串口1 中断处理函数
  198. **
  199. ** \retval
  200. ******************************************************************************/
  201. void LPUART1_IRQHandler(void)
  202. {
  203. LpUart_IRQHandler(1);
  204. }
  205. /**
  206. *******************************************************************************
  207. ** \brief SPI0 中断处理函数
  208. **
  209. ** \retval
  210. ******************************************************************************/
  211. void SPI0_IRQHandler(void)
  212. {
  213. Spi_IRQHandler(0);
  214. }
  215. /**
  216. *******************************************************************************
  217. ** \brief SPI1 中断处理函数
  218. **
  219. ** \retval
  220. ******************************************************************************/
  221. void SPI1_IRQHandler(void)
  222. {
  223. Spi_IRQHandler(1);
  224. }
  225. /**
  226. *******************************************************************************
  227. ** \brief I2C0 中断处理函数
  228. **
  229. ** \retval
  230. ******************************************************************************/
  231. void I2C0_IRQHandler(void)
  232. {
  233. I2c_IRQHandler(0);
  234. }
  235. /**
  236. *******************************************************************************
  237. ** \brief I2C1 中断处理函数
  238. **
  239. ** \retval
  240. ******************************************************************************/
  241. void I2C1_IRQHandler(void)
  242. {
  243. I2c_IRQHandler(1);
  244. }
  245. /**
  246. *******************************************************************************
  247. ** \brief TIM0 基础时钟0 中断处理函数
  248. **
  249. ** \retval
  250. ******************************************************************************/
  251. void TIM0_IRQHandler(void)
  252. {
  253. Tim_IRQHandler(0);
  254. }
  255. /**
  256. *******************************************************************************
  257. ** \brief TIM1 基础时钟1 中断处理函数
  258. **
  259. ** \retval
  260. ******************************************************************************/
  261. void TIM1_IRQHandler(void)
  262. {
  263. Tim_IRQHandler(1);
  264. }
  265. /**
  266. *******************************************************************************
  267. ** \brief TIM2 基础时钟2 中断处理函数
  268. **
  269. ** \retval
  270. ******************************************************************************/
  271. void TIM2_IRQHandler(void)
  272. {
  273. Tim_IRQHandler(2);
  274. }
  275. /**
  276. *******************************************************************************
  277. ** \brief TIM3 基础时钟3 中断处理函数
  278. **
  279. ** \retval
  280. ******************************************************************************/
  281. void TIM3_IRQHandler(void)
  282. {
  283. Tim3_IRQHandler(0);
  284. }
  285. /**
  286. *******************************************************************************
  287. ** \brief LPTIM 低功耗时钟 中断处理函数
  288. **
  289. ** \retval
  290. ******************************************************************************/
  291. void LPTIM_IRQHandler(void)
  292. {
  293. LpTim_IRQHandler(0);
  294. }
  295. /**
  296. *******************************************************************************
  297. ** \brief TIM4 高级时钟4 中断处理函数
  298. **
  299. ** \retval
  300. ******************************************************************************/
  301. void TIM4_IRQHandler(void)
  302. {
  303. Adt_IRQHandler(4);
  304. }
  305. /**
  306. *******************************************************************************
  307. ** \brief TIM5 高级时钟5 中断处理函数
  308. **
  309. ** \retval
  310. ******************************************************************************/
  311. void TIM5_IRQHandler(void)
  312. {
  313. Adt_IRQHandler(5);
  314. }
  315. /**
  316. *******************************************************************************
  317. ** \brief TIM6 高级时钟6 中断处理函数
  318. **
  319. ** \retval
  320. ******************************************************************************/
  321. void TIM6_IRQHandler(void)
  322. {
  323. Adt_IRQHandler(6);
  324. }
  325. /**
  326. *******************************************************************************
  327. ** \brief PCA 中断处理函数
  328. **
  329. ** \retval
  330. ******************************************************************************/
  331. void PCA_IRQHandler(void)
  332. {
  333. Pca_IRQHandler(0);
  334. }
  335. /**
  336. *******************************************************************************
  337. ** \brief WDT 中断处理函数
  338. **
  339. ** \retval
  340. ******************************************************************************/
  341. void WDT_IRQHandler(void)
  342. {
  343. Wdt_IRQHandler(0);
  344. }
  345. /**
  346. *******************************************************************************
  347. ** \brief RTC 中断处理函数
  348. **
  349. ** \retval
  350. ******************************************************************************/
  351. void RTC_IRQHandler(void)
  352. {
  353. Rtc_IRQHandler(0);
  354. }
  355. /**
  356. *******************************************************************************
  357. ** \brief ADC 中断处理函数
  358. **
  359. ** \retval
  360. ******************************************************************************/
  361. void ADC_IRQHandler(void)
  362. {
  363. Adc_IRQHandler(0);
  364. }
  365. /**
  366. *******************************************************************************
  367. ** \brief PCNT 中断处理函数
  368. **
  369. ** \retval
  370. ******************************************************************************/
  371. void PCNT_IRQHandler(void)
  372. {
  373. Pcnt_IRQHandler(0);
  374. }
  375. /**
  376. *******************************************************************************
  377. ** \brief 电压比较0 中断处理函数
  378. **
  379. ** \retval
  380. ******************************************************************************/
  381. void VC0_IRQHandler(void)
  382. {
  383. Vc_IRQHandler(0);
  384. }
  385. /**
  386. *******************************************************************************
  387. ** \brief 电压比较1 中断处理函数
  388. **
  389. ** \retval
  390. ******************************************************************************/
  391. void VC1_IRQHandler(void)
  392. {
  393. Vc_IRQHandler(1);
  394. }
  395. /**
  396. *******************************************************************************
  397. ** \brief 低电压检测 中断处理函数
  398. **
  399. ** \retval
  400. ******************************************************************************/
  401. void LVD_IRQHandler(void)
  402. {
  403. Lvd_IRQHandler(0);
  404. }
  405. /**
  406. *******************************************************************************
  407. ** \brief LCD 中断处理函数
  408. **
  409. ** \retval
  410. ******************************************************************************/
  411. void LCD_IRQHandler(void)
  412. {
  413. Lcd_IRQHandler(0);
  414. }
  415. /**
  416. *******************************************************************************
  417. ** \brief RAM 中断处理函数
  418. **
  419. ** \retval
  420. ******************************************************************************/
  421. void EF_RAM_IRQHandler(void)
  422. {
  423. EfRam_IRQHandler(0);
  424. }
  425. /**
  426. *******************************************************************************
  427. ** \brief 时钟校准 中断处理函数
  428. **
  429. ** \retval
  430. ******************************************************************************/
  431. void CLKTRIM_IRQHandler(void)
  432. {
  433. ClkTrim_IRQHandler(0);
  434. }
  435. /******************************************************************************/
  436. /* EOF (not truncated) */
  437. /******************************************************************************/