STM8S/A Standard Peripherals Firmware Library
|
STM8S_StdPeriph_Examples/UART1/UART1_HyperTerminal_Interrupt/stm8s_it.c
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm8s_it.c 00004 * @author MCD Application Team 00005 * @version V2.2.0 00006 * @date 30-September-2014 00007 * @brief Main Interrupt Service Routines. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2> 00012 * 00013 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); 00014 * You may not use this file except in compliance with the License. 00015 * You may obtain a copy of the License at: 00016 * 00017 * http://www.st.com/software_license_agreement_liberty_v2 00018 * 00019 * Unless required by applicable law or agreed to in writing, software 00020 * distributed under the License is distributed on an "AS IS" BASIS, 00021 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00022 * See the License for the specific language governing permissions and 00023 * limitations under the License. 00024 * 00025 ****************************************************************************** 00026 */ 00027 00028 /* Includes ------------------------------------------------------------------*/ 00029 #include "stm8s_it.h" 00030 00031 /** @addtogroup UART1_HyperTerminal_Interrupt 00032 * @{ 00033 */ 00034 /* Private typedef -----------------------------------------------------------*/ 00035 /* Private define ------------------------------------------------------------*/ 00036 #define TX_BUFFER_SIZE (countof(TxBuffer) - 1) 00037 00038 /* Private macro -------------------------------------------------------------*/ 00039 #define countof(a) (sizeof(a) / sizeof(*(a))) 00040 /* Private variables ---------------------------------------------------------*/ 00041 uint8_t TxBuffer[] = "HyperTerminal Interrupt: UART1-Hyperterminal communication using Interrupt"; 00042 __IO uint8_t TxCounter = 0; 00043 /* Private function prototypes -----------------------------------------------*/ 00044 /* Private functions ---------------------------------------------------------*/ 00045 00046 /* Public functions ----------------------------------------------------------*/ 00047 00048 00049 #ifdef _COSMIC_ 00050 /** 00051 * @brief Dummy interrupt routine 00052 * @param None 00053 * @retval None 00054 */ 00055 INTERRUPT_HANDLER(NonHandledInterrupt, 25) 00056 { 00057 /* In order to detect unexpected events during development, 00058 it is recommended to set a breakpoint on the following instruction. 00059 */ 00060 } 00061 #endif /*_COSMIC_*/ 00062 00063 /** 00064 * @brief TRAP interrupt routine 00065 * @param None 00066 * @retval None 00067 */ 00068 INTERRUPT_HANDLER_TRAP(TRAP_IRQHandler) 00069 { 00070 /* In order to detect unexpected events during development, 00071 it is recommended to set a breakpoint on the following instruction. 00072 */ 00073 } 00074 /** 00075 * @brief Top Level Interrupt routine 00076 * @param None 00077 * @retval None 00078 */ 00079 INTERRUPT_HANDLER(TLI_IRQHandler, 0) 00080 { 00081 /* In order to detect unexpected events during development, 00082 it is recommended to set a breakpoint on the following instruction. 00083 */ 00084 } 00085 00086 /** 00087 * @brief Auto Wake Up Interrupt routine 00088 * @param None 00089 * @retval None 00090 */ 00091 INTERRUPT_HANDLER(AWU_IRQHandler, 1) 00092 { 00093 /* In order to detect unexpected events during development, 00094 it is recommended to set a breakpoint on the following instruction. 00095 */ 00096 } 00097 00098 /** 00099 * @brief Clock Controller Interrupt routine 00100 * @param None 00101 * @retval None 00102 */ 00103 INTERRUPT_HANDLER(CLK_IRQHandler, 2) 00104 { 00105 /* In order to detect unexpected events during development, 00106 it is recommended to set a breakpoint on the following instruction. 00107 */ 00108 } 00109 00110 /** 00111 * @brief External Interrupt PORTA Interrupt routine 00112 * @param None 00113 * @retval None 00114 */ 00115 INTERRUPT_HANDLER(EXTI_PORTA_IRQHandler, 3) 00116 { 00117 /* In order to detect unexpected events during development, 00118 it is recommended to set a breakpoint on the following instruction. 00119 */ 00120 } 00121 00122 /** 00123 * @brief External Interrupt PORTB Interrupt routine 00124 * @param None 00125 * @retval None 00126 */ 00127 INTERRUPT_HANDLER(EXTI_PORTB_IRQHandler, 4) 00128 { 00129 /* In order to detect unexpected events during development, 00130 it is recommended to set a breakpoint on the following instruction. 00131 */ 00132 } 00133 00134 /** 00135 * @brief External Interrupt PORTC Interrupt routine 00136 * @param None 00137 * @retval None 00138 */ 00139 INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5) 00140 { 00141 /* In order to detect unexpected events during development, 00142 it is recommended to set a breakpoint on the following instruction. 00143 */ 00144 } 00145 00146 /** 00147 * @brief External Interrupt PORTD Interrupt routine 00148 * @param None 00149 * @retval None 00150 */ 00151 INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6) 00152 { 00153 /* In order to detect unexpected events during development, 00154 it is recommended to set a breakpoint on the following instruction. 00155 */ 00156 } 00157 00158 /** 00159 * @brief External Interrupt PORTE Interrupt routine 00160 * @param None 00161 * @retval None 00162 */ 00163 INTERRUPT_HANDLER(EXTI_PORTE_IRQHandler, 7) 00164 { 00165 /* In order to detect unexpected events during development, 00166 it is recommended to set a breakpoint on the following instruction. 00167 */ 00168 } 00169 #ifdef STM8S903 00170 /** 00171 * @brief External Interrupt PORTF Interrupt routine 00172 * @param None 00173 * @retval None 00174 */ 00175 INTERRUPT_HANDLER(EXTI_PORTF_IRQHandler, 8) 00176 { 00177 /* In order to detect unexpected events during development, 00178 it is recommended to set a breakpoint on the following instruction. 00179 */ 00180 } 00181 #endif /*STM8S903*/ 00182 00183 #if defined (STM8S208) || defined (STM8AF52Ax) 00184 /** 00185 * @brief CAN RX Interrupt routine. 00186 * @param None 00187 * @retval None 00188 */ 00189 INTERRUPT_HANDLER(CAN_RX_IRQHandler, 8) 00190 { 00191 /* In order to detect unexpected events during development, 00192 it is recommended to set a breakpoint on the following instruction. 00193 */ 00194 } 00195 00196 /** 00197 * @brief CAN TX Interrupt routine 00198 * @param None 00199 * @retval None 00200 */ 00201 INTERRUPT_HANDLER(CAN_TX_IRQHandler, 9) 00202 { 00203 /* In order to detect unexpected events during development, 00204 it is recommended to set a breakpoint on the following instruction. 00205 */ 00206 } 00207 #endif /*STM8S208 || STM8AF52Ax */ 00208 00209 /** 00210 * @brief SPI Interrupt routine 00211 * @param None 00212 * @retval None 00213 */ 00214 INTERRUPT_HANDLER(SPI_IRQHandler, 10) 00215 { 00216 /* In order to detect unexpected events during development, 00217 it is recommended to set a breakpoint on the following instruction. 00218 */ 00219 } 00220 00221 /** 00222 * @brief Timer1 Update/Overflow/Trigger/Break Interrupt routine 00223 * @param None 00224 * @retval None 00225 */ 00226 INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11) 00227 { 00228 /* In order to detect unexpected events during development, 00229 it is recommended to set a breakpoint on the following instruction. 00230 */ 00231 } 00232 00233 /** 00234 * @brief Timer1 Capture/Compare Interrupt routine 00235 * @param None 00236 * @retval None 00237 */ 00238 INTERRUPT_HANDLER(TIM1_CAP_COM_IRQHandler, 12) 00239 { 00240 /* In order to detect unexpected events during development, 00241 it is recommended to set a breakpoint on the following instruction. 00242 */ 00243 } 00244 00245 #ifdef STM8S903 00246 /** 00247 * @brief Timer5 Update/Overflow/Break/Trigger Interrupt routine 00248 * @param None 00249 * @retval None 00250 */ 00251 INTERRUPT_HANDLER(TIM5_UPD_OVF_BRK_TRG_IRQHandler, 13) 00252 { 00253 /* In order to detect unexpected events during development, 00254 it is recommended to set a breakpoint on the following instruction. 00255 */ 00256 } 00257 /** 00258 * @brief Timer5 Capture/Compare Interrupt routine 00259 * @param None 00260 * @retval None 00261 */ 00262 INTERRUPT_HANDLER(TIM5_CAP_COM_IRQHandler, 14) 00263 { 00264 /* In order to detect unexpected events during development, 00265 it is recommended to set a breakpoint on the following instruction. 00266 */ 00267 } 00268 00269 #else /*STM8S208, STM8S207, STM8S105 or STM8S103 or STM8AF62Ax or STM8AF52Ax or STM8AF626x */ 00270 /** 00271 * @brief Timer2 Update/Overflow/Break Interrupt routine 00272 * @param None 00273 * @retval None 00274 */ 00275 INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13) 00276 { 00277 /* In order to detect unexpected events during development, 00278 it is recommended to set a breakpoint on the following instruction. 00279 */ 00280 } 00281 00282 /** 00283 * @brief Timer2 Capture/Compare Interrupt routine 00284 * @param None 00285 * @retval None 00286 */ 00287 INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14) 00288 { 00289 /* In order to detect unexpected events during development, 00290 it is recommended to set a breakpoint on the following instruction. 00291 */ 00292 } 00293 #endif /*STM8S903*/ 00294 00295 #if defined (STM8S208) || defined(STM8S207) || defined(STM8S007) || defined(STM8S105) || \ 00296 defined(STM8S005) || defined (STM8AF62Ax) || defined (STM8AF52Ax) || defined (STM8AF626x) 00297 /** 00298 * @brief Timer3 Update/Overflow/Break Interrupt routine. 00299 * @param None 00300 * @retval None 00301 */ 00302 INTERRUPT_HANDLER(TIM3_UPD_OVF_BRK_IRQHandler, 15) 00303 { 00304 /* In order to detect unexpected events during development, 00305 it is recommended to set a breakpoint on the following instruction. 00306 */ 00307 } 00308 00309 /** 00310 * @brief Timer3 Capture/Compare Interrupt routine 00311 * @param None 00312 * @retval None 00313 */ 00314 INTERRUPT_HANDLER(TIM3_CAP_COM_IRQHandler, 16) 00315 { 00316 /* In order to detect unexpected events during development, 00317 it is recommended to set a breakpoint on the following instruction. 00318 */ 00319 } 00320 #endif /*STM8S208, STM8S207 or STM8S105 or STM8AF62Ax or STM8AF52Ax or STM8AF626x */ 00321 00322 #if defined (STM8S208) || defined(STM8S207) || defined(STM8S007) || defined(STM8S103) || \ 00323 defined(STM8S003) || defined (STM8AF62Ax) || defined (STM8AF52Ax) || defined (STM8S903) 00324 /** 00325 * @brief UART1 TX Interrupt routine 00326 * @param None 00327 * @retval None 00328 */ 00329 INTERRUPT_HANDLER(UART1_TX_IRQHandler, 17) 00330 { 00331 /* Write one byte to the transmit data register */ 00332 UART1_SendData8(TxBuffer[TxCounter++]); 00333 00334 if (TxCounter == TX_BUFFER_SIZE) 00335 { 00336 /* Disable the USART Transmit Complete interrupt */ 00337 UART1_ITConfig(UART1_IT_TXE, DISABLE); 00338 } 00339 } 00340 00341 /** 00342 * @brief UART1 RX Interrupt routine 00343 * @param None 00344 * @retval None 00345 */ 00346 INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18) 00347 { 00348 uint8_t temp; 00349 00350 /* Read one byte from the receive data register and send it back */ 00351 temp = (UART1_ReceiveData8() & 0x7F); 00352 UART1_SendData8(temp); 00353 } 00354 #endif /*STM8S105*/ 00355 00356 /** 00357 * @brief I2C Interrupt routine 00358 * @param None 00359 * @retval None 00360 */ 00361 INTERRUPT_HANDLER(I2C_IRQHandler, 19) 00362 { 00363 /* In order to detect unexpected events during development, 00364 it is recommended to set a breakpoint on the following instruction. 00365 */ 00366 } 00367 00368 #if defined(STM8S105) || defined(STM8S005) || defined (STM8AF626x) 00369 /** 00370 * @brief UART2 TX interrupt routine. 00371 * @param None 00372 * @retval None 00373 */ 00374 INTERRUPT_HANDLER(UART2_TX_IRQHandler, 20) 00375 { 00376 /* In order to detect unexpected events during development, 00377 it is recommended to set a breakpoint on the following instruction. 00378 */ 00379 } 00380 00381 /** 00382 * @brief UART2 RX interrupt routine. 00383 * @param None 00384 * @retval None 00385 */ 00386 INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21) 00387 { 00388 /* In order to detect unexpected events during development, 00389 it is recommended to set a breakpoint on the following instruction. 00390 */ 00391 } 00392 #endif /* STM8S105*/ 00393 00394 #if defined(STM8S207) || defined(STM8S007) || defined(STM8S208) || defined (STM8AF52Ax) || defined (STM8AF62Ax) 00395 /** 00396 * @brief UART3 TX interrupt routine. 00397 * @param None 00398 * @retval None 00399 */ 00400 INTERRUPT_HANDLER(UART3_TX_IRQHandler, 20) 00401 { 00402 /* In order to detect unexpected events during development, 00403 it is recommended to set a breakpoint on the following instruction. 00404 */ 00405 } 00406 00407 /** 00408 * @brief UART3 RX interrupt routine. 00409 * @param None 00410 * @retval None 00411 */ 00412 INTERRUPT_HANDLER(UART3_RX_IRQHandler, 21) 00413 { 00414 /* In order to detect unexpected events during development, 00415 it is recommended to set a breakpoint on the following instruction. 00416 */ 00417 } 00418 #endif /*STM8S208 or STM8S207 or STM8AF52Ax or STM8AF62Ax */ 00419 00420 #if defined(STM8S207) || defined(STM8S007) || defined(STM8S208) || defined (STM8AF52Ax) || defined (STM8AF62Ax) 00421 /** 00422 * @brief ADC2 interrupt routine. 00423 * @param None 00424 * @retval None 00425 */ 00426 INTERRUPT_HANDLER(ADC2_IRQHandler, 22) 00427 { 00428 00429 /* In order to detect unexpected events during development, 00430 it is recommended to set a breakpoint on the following instruction. 00431 */ 00432 return; 00433 00434 } 00435 #else /*STM8S105, STM8S103 or STM8S903 or STM8AF626x */ 00436 /** 00437 * @brief ADC1 interrupt routine. 00438 * @param None 00439 * @retval None 00440 */ 00441 INTERRUPT_HANDLER(ADC1_IRQHandler, 22) 00442 { 00443 00444 /* In order to detect unexpected events during development, 00445 it is recommended to set a breakpoint on the following instruction. 00446 */ 00447 return; 00448 00449 } 00450 #endif /*STM8S208 or STM8S207 or STM8AF52Ax or STM8AF62Ax */ 00451 00452 #ifdef STM8S903 00453 /** 00454 * @brief Timer6 Update/Overflow/Trigger Interrupt routine 00455 * @param None 00456 * @retval None 00457 */ 00458 INTERRUPT_HANDLER(TIM6_UPD_OVF_TRG_IRQHandler, 23) 00459 { 00460 /* In order to detect unexpected events during development, 00461 it is recommended to set a breakpoint on the following instruction. 00462 */ 00463 } 00464 #else /*STM8S208, STM8S207, STM8S105 or STM8S103 or STM8AF62Ax or STM8AF52Ax or STM8AF626x */ 00465 /** 00466 * @brief Timer4 Update/Overflow Interrupt routine 00467 * @param None 00468 * @retval None 00469 */ 00470 INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23) 00471 { 00472 /* In order to detect unexpected events during development, 00473 it is recommended to set a breakpoint on the following instruction. 00474 */ 00475 } 00476 #endif /*STM8S903*/ 00477 00478 /** 00479 * @brief Eeprom EEC Interrupt routine 00480 * @param None 00481 * @retval None 00482 */ 00483 INTERRUPT_HANDLER(EEPROM_EEC_IRQHandler, 24) 00484 { 00485 /* In order to detect unexpected events during development, 00486 it is recommended to set a breakpoint on the following instruction. 00487 */ 00488 } 00489 00490 /** 00491 * @} 00492 */ 00493 00494 00495 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/