1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219 |
- /*""FILE COMMENT""*******************************************************
- * System Name : Interrupt program for RX62Nxx
- * File Name : Interrupt_SCI.c
- * Version : 1.02
- * Contents : Interrupt handlers for all SCI channels
- * Customer :
- * Model :
- * Order :
- * CPU : RX
- * Compiler : RXC
- * OS : Nothing
- * Programmer :
- * Note :
- ************************************************************************
- * Copyright, 2011. Renesas Electronics Corporation
- * and Renesas Solutions Corporation
- ************************************************************************
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FILE COMMENT END""**************************************************/
- #include "r_pdl_sci.h"
- #include "r_pdl_definitions.h"
- #include "r_pdl_user_definitions.h"
- /*""FUNC COMMENT""***************************************************
- * Module outline: SCIn receive data error interrupt processing
- *-------------------------------------------------------------------
- * Declaration : void Interrupt_SCIn_ERIn(void)
- *-------------------------------------------------------------------
- * Function :
- *-------------------------------------------------------------------
- * Argument : Nothing
- *-------------------------------------------------------------------
- * Return value : Nothing
- *-------------------------------------------------------------------
- * Output : SSR for that SCI channel
- *-------------------------------------------------------------------
- * Use function : rpdl_SCI_RX_Error_callback_func
- *-------------------------------------------------------------------
- * Notes :
- *-------------------------------------------------------------------
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FUNC COMMENT END""**********************************************/
- #if FAST_INTC_VECTOR == VECT_SCI0_ERI0
- __fast_interrupt void Interrupt_SCI0_ERI0(void)
- #else
- #pragma vector = VECT_SCI0_ERI0
- __interrupt void Interrupt_SCI0_ERI0(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[0] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[0]();
- }
- else
- {
- /* Clear the error flags */
- SCI0.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI1_ERI1
- __fast_interrupt void Interrupt_SCI1_ERI1(void)
- #else
- #pragma vector = VECT_SCI1_ERI1
- __interrupt void Interrupt_SCI1_ERI1(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[1] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[1]();
- }
- else
- {
- /* Clear the error flags */
- SCI1.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- #if 0
- #if FAST_INTC_VECTOR == VECT_SCI2_ERI2
- __fast_interrupt void Interrupt_SCI2_ERI2(void)
- #else
- #pragma vector = VECT_SCI2_ERI2
- __interrupt void Interrupt_SCI2_ERI2(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[2] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[2]();
- }
- else
- {
- /* Clear the error flags */
- SCI2.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- #endif
- #if FAST_INTC_VECTOR == VECT_SCI3_ERI3
- __fast_interrupt void Interrupt_SCI3_ERI3(void)
- #else
- #pragma vector = VECT_SCI3_ERI3
- __interrupt void Interrupt_SCI3_ERI3(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[3] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[3]();
- }
- else
- {
- /* Clear the error flags */
- SCI3.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI5_ERI5
- __fast_interrupt void Interrupt_SCI5_ERI5(void)
- #else
- #pragma vector = VECT_SCI5_ERI5
- __interrupt void Interrupt_SCI5_ERI5(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[5] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[5]();
- }
- else
- {
- /* Clear the error flags */
- SCI5.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI6_ERI6
- __fast_interrupt void Interrupt_SCI6_ERI6(void)
- #else
- #pragma vector = VECT_SCI6_ERI6
- __interrupt void Interrupt_SCI6_ERI6(void)
- #endif
- {
- /* Will the user handle the errors? */
- if (rpdl_SCI_RX_Error_callback_func[6] != PDL_NO_FUNC)
- {
- /* Call the error handler */
- rpdl_SCI_RX_Error_callback_func[6]();
- }
- else
- {
- /* Clear the error flags */
- SCI6.SSR.BYTE = (uint8_t)(BIT_7 | BIT_6);
- }
- }
- /*""FUNC COMMENT""***************************************************
- * Module outline: SCIn receive data interrupt processing
- *-------------------------------------------------------------------
- * Declaration : void Interrupt_SCIn_RXIn(void)
- *-------------------------------------------------------------------
- * Function :
- *-------------------------------------------------------------------
- * Argument : Nothing
- *-------------------------------------------------------------------
- * Return value : Nothing
- *-------------------------------------------------------------------
- * Output :
- *-------------------------------------------------------------------
- * Use function : rpdl_SCI_RX_End_callback_func
- *-------------------------------------------------------------------
- * Notes :
- *-------------------------------------------------------------------
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FUNC COMMENT END""**********************************************/
- #if FAST_INTC_VECTOR == VECT_SCI0_RXI0
- __fast_interrupt void Interrupt_SCI0_RXI0(void)
- #else
- #pragma vector = VECT_SCI0_RXI0
- __interrupt void Interrupt_SCI0_RXI0(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[0] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[0] == 2)
- {
- /* check if ID cycle ? */
- if (SCI0.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI0.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[0])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI0.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI0.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[0]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[0] = SCI0.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[0]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[0] < rpdl_SCI_rx_threshold[0])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[0]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI0.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI0.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[0]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI0.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[0]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[0]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI1_RXI1
- __fast_interrupt void Interrupt_SCI1_RXI1(void)
- #else
- #pragma vector = VECT_SCI1_RXI1
- __interrupt void Interrupt_SCI1_RXI1(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[1] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[1] == 2)
- {
- /* check if ID cycle ? */
- if (SCI1.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI1.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[1])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI1.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI1.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[1]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[1] = SCI1.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[1]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[1] < rpdl_SCI_rx_threshold[1])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[1]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI1.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI1.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[1]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI1.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[1]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[1]();
- }
- }
- }
- #if 0
- #if FAST_INTC_VECTOR == VECT_SCI2_RXI2
- __fast_interrupt void Interrupt_SCI2_RXI2(void)
- #else
- #pragma vector = VECT_SCI2_RXI2
- __interrupt void Interrupt_SCI2_RXI2(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[2] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[2] == 2)
- {
- /* check if ID cycle ? */
- if (SCI2.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI2.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[2])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI2.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI2.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[2]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[2] = SCI2.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[2]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[2] < rpdl_SCI_rx_threshold[2])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[2]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI2.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI2.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[2]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI2.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[2]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[2]();
- }
- }
- }
- #endif
- #if FAST_INTC_VECTOR == VECT_SCI3_RXI3
- __fast_interrupt void Interrupt_SCI3_RXI3(void)
- #else
- #pragma vector = VECT_SCI3_RXI3
- __interrupt void Interrupt_SCI3_RXI3(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[3] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[3] == 2)
- {
- /* check if ID cycle ? */
- if (SCI3.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI3.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[3])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI3.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI3.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[3]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[3] = SCI3.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[3]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[3] < rpdl_SCI_rx_threshold[3])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[3]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI3.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI3.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[3]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI3.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[3]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[3]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI5_RXI5
- __fast_interrupt void Interrupt_SCI5_RXI5(void)
- #else
- #pragma vector = VECT_SCI5_RXI5
- __interrupt void Interrupt_SCI5_RXI5(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[5] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[5] == 2)
- {
- /* check if ID cycle ? */
- if (SCI5.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI5.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[5])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI5.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI5.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[5]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[5] = SCI5.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[5]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[5] < rpdl_SCI_rx_threshold[5])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[5]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI5.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI5.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[5]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI5.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[5]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[5]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI6_RXI6
- __fast_interrupt void Interrupt_SCI6_RXI6(void)
- #else
- #pragma vector = VECT_SCI6_RXI6
- __interrupt void Interrupt_SCI6_RXI6(void)
- #endif
- {
- /* Ok to process the data? */
- if (rpdl_SCI_rx_using_irq[6] == true)
- {
- /* check if ID reception in Multiprocessor mode */
- if (rpdl_SCI_MP_mode[6] == 2)
- {
- /* check if ID cycle ? */
- if (SCI6.SSR.BIT.MPB == 1)
- {
- uint8_t id;
- /* Read the ID */
- id = SCI6.RDR;
- /* ID matching ? */
- if (id != rpdl_SCI_MP_rx_stationID[6])
- {
- /* ID does not match */
- /* MPIE = 1 */
- SCI6.SCR.BIT.MPIE = 1;
- }
- else
- {
- /* ID matches */
- /* Disable interrupt request generation, and try to disable reception */
- SCI6.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[6]();
- }
- }
- /* Exit ISR */
- return;
- }
- }
- /* Read and store the character */
- *rpdl_SCI_rx_string_pointer[6] = SCI6.RDR;
- /* Increment the character counter */
- rpdl_SCI_rx_counter[6]++;
- /* More characters expected? */
- if (rpdl_SCI_rx_counter[6] < rpdl_SCI_rx_threshold[6])
- {
- /* Move to the next location in the buffer */
- rpdl_SCI_rx_string_pointer[6]++;
- }
- else
- {
- /* Disable interrupt request generation, and try to disable reception */
- SCI6.SCR.BYTE &= (uint8_t)(INV_BIT_6 & INV_BIT_4);
- /* Async MP mode ? */
- if (((SCI6.SMR.BIT.MP) != 0) && ((rpdl_SCI_MP_mode[6]) != 0))
- {
- /* Set MPIE = 1 (multiprocessor mode reception) */
- SCI6.SCR.BIT.MPIE = 1;
- }
- /* Notify the user */
- if (rpdl_SCI_RX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[6]();
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_RX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_RX_End_callback_func[6]();
- }
- }
- }
- /*""FUNC COMMENT""***************************************************
- * Module outline: SCIn transmit data interrupt processing
- *-------------------------------------------------------------------
- * Declaration : void Interrupt_SCIn_TXIn(void)
- *-------------------------------------------------------------------
- * Function :
- *-------------------------------------------------------------------
- * Argument : Nothing
- *-------------------------------------------------------------------
- * Return value : Nothing
- *-------------------------------------------------------------------
- * Output : TDR for that SCI channel
- *-------------------------------------------------------------------
- * Use function :
- *-------------------------------------------------------------------
- * Notes :
- *-------------------------------------------------------------------
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FUNC COMMENT END""**********************************************/
- #if FAST_INTC_VECTOR == VECT_SCI0_TXI0
- __fast_interrupt void Interrupt_SCI0_TXI0(void)
- #else
- #pragma vector = VECT_SCI0_TXI0
- __interrupt void Interrupt_SCI0_TXI0(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[0] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[0] == 0) && (*rpdl_SCI_tx_string_pointer[0] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[0] < rpdl_SCI_tx_threshold[0])
- )
- {
- /* Send the character */
- SCI0.TDR = *rpdl_SCI_tx_string_pointer[0];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[0]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[0]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI0.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI0.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI0.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[0]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[0]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI1_TXI1
- __fast_interrupt void Interrupt_SCI1_TXI1(void)
- #else
- #pragma vector = VECT_SCI1_TXI1
- __interrupt void Interrupt_SCI1_TXI1(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[1] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[1] == 0) && (*rpdl_SCI_tx_string_pointer[1] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[1] < rpdl_SCI_tx_threshold[1])
- )
- {
- /* Send the character */
- SCI1.TDR = *rpdl_SCI_tx_string_pointer[1];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[1]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[1]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI1.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI1.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI1.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[1]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[1]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI2_TXI2
- __fast_interrupt void Interrupt_SCI2_TXI2(void)
- #else
- #pragma vector = VECT_SCI2_TXI2
- __interrupt void Interrupt_SCI2_TXI2(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[2] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[2] == 0) && (*rpdl_SCI_tx_string_pointer[2] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[2] < rpdl_SCI_tx_threshold[2])
- )
- {
- /* Send the character */
- SCI2.TDR = *rpdl_SCI_tx_string_pointer[2];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[2]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[2]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI2.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI2.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI2.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[2]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[2]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI3_TXI3
- __fast_interrupt void Interrupt_SCI3_TXI3(void)
- #else
- #pragma vector = VECT_SCI3_TXI3
- __interrupt void Interrupt_SCI3_TXI3(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[3] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[3] == 0) && (*rpdl_SCI_tx_string_pointer[3] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[3] < rpdl_SCI_tx_threshold[3])
- )
- {
- /* Send the character */
- SCI3.TDR = *rpdl_SCI_tx_string_pointer[3];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[3]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[3]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI3.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI3.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI3.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[3]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[3]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI5_TXI5
- __fast_interrupt void Interrupt_SCI5_TXI5(void)
- #else
- #pragma vector = VECT_SCI5_TXI5
- __interrupt void Interrupt_SCI5_TXI5(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[5] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[5] == 0) && (*rpdl_SCI_tx_string_pointer[5] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[5] < rpdl_SCI_tx_threshold[5])
- )
- {
- /* Send the character */
- SCI5.TDR = *rpdl_SCI_tx_string_pointer[5];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[5]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[5]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI5.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI5.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI5.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[5]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[5]();
- }
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI6_TXI6
- __fast_interrupt void Interrupt_SCI6_TXI6(void)
- #else
- #pragma vector = VECT_SCI6_TXI6
- __interrupt void Interrupt_SCI6_TXI6(void)
- #endif
- {
- /* Ok to process the string? */
- if (rpdl_SCI_tx_using_irq[6] == true)
- {
- /* Another character to be sent? */
- if (
- /* Sending a string and next character is not a Null? */
- ((rpdl_SCI_tx_threshold[6] == 0) && (*rpdl_SCI_tx_string_pointer[6] != NULL))
- ||
- /* Not reached the byte total? */
- (rpdl_SCI_tx_counter[6] < rpdl_SCI_tx_threshold[6])
- )
- {
- /* Send the character */
- SCI6.TDR = *rpdl_SCI_tx_string_pointer[6];
- /* Increment the pointer */
- rpdl_SCI_tx_string_pointer[6]++;
- /* Increment the counter */
- rpdl_SCI_tx_counter[6]++;
- }
- else
- {
- /* Disable interrupt request generation */
- SCI6.SCR.BIT.TIE = 0;
- /* Smart card mode? */
- if (SCI6.SCMR.BIT.SMIF == 1)
- {
- /* Disable transmission and interrupt request generation */
- SCI6.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[6]();
- }
- }
- }
- }
- /* Either the DMAC or DTC has passed on the interrupt */
- else
- {
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[6]();
- }
- }
- }
- /*""FUNC COMMENT""***************************************************
- * Module outline: SCIn transmit end interrupt processing
- *-------------------------------------------------------------------
- * Declaration : void Interrupt_SCIn_TEIn(void)
- *-------------------------------------------------------------------
- * Function :
- *-------------------------------------------------------------------
- * Argument : Nothing
- *-------------------------------------------------------------------
- * Return value : Nothing
- *-------------------------------------------------------------------
- * Output : SCR for that channel
- *-------------------------------------------------------------------
- * Use function : rpdl_SCI_TX_End_callback_func()
- *-------------------------------------------------------------------
- * Notes :
- *-------------------------------------------------------------------
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FUNC COMMENT END""**********************************************/
- #if FAST_INTC_VECTOR == VECT_SCI0_TEI0
- __fast_interrupt void Interrupt_SCI0_TEI0(void)
- #else
- #pragma vector = VECT_SCI0_TEI0
- __interrupt void Interrupt_SCI0_TEI0(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI0.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[0] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[0]();
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI1_TEI1
- __fast_interrupt void Interrupt_SCI1_TEI1(void)
- #else
- #pragma vector = VECT_SCI1_TEI1
- __interrupt void Interrupt_SCI1_TEI1(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI1.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[1] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[1]();
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI2_TEI2
- __fast_interrupt void Interrupt_SCI2_TEI2(void)
- #else
- #pragma vector = VECT_SCI2_TEI2
- __interrupt void Interrupt_SCI2_TEI2(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI2.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[2] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[2]();
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI3_TEI3
- __fast_interrupt void Interrupt_SCI3_TEI3(void)
- #else
- #pragma vector = VECT_SCI3_TEI3
- __interrupt void Interrupt_SCI3_TEI3(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI3.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[3] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[3]();
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI5_TEI5
- __fast_interrupt void Interrupt_SCI5_TEI5(void)
- #else
- #pragma vector = VECT_SCI5_TEI5
- __interrupt void Interrupt_SCI5_TEI5(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI5.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[5] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[5]();
- }
- }
- #if FAST_INTC_VECTOR == VECT_SCI6_TEI6
- __fast_interrupt void Interrupt_SCI6_TEI6(void)
- #else
- #pragma vector = VECT_SCI6_TEI6
- __interrupt void Interrupt_SCI6_TEI6(void)
- #endif
- {
- /* Disable interrupt request generation, and try to disable transmission */
- SCI6.SCR.BYTE &= (uint8_t)(INV_BIT_7 & INV_BIT_5 & INV_BIT_2);
- /* Call the callback function */
- if (rpdl_SCI_TX_End_callback_func[6] != PDL_NO_FUNC)
- {
- rpdl_SCI_TX_End_callback_func[6]();
- }
- }
- /* End of file */
|