STM8S/A Standard Peripherals Firmware Library: stm8s_it.c Source File

STM8S/A

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>&copy; 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****/
STM8 Standard Peripherals Library: Footer

 

 

 

      For complete documentation on STM8 8-bit Microcontrollers platform visit www.st.com