]> begriffs open source - cmsis-freertos/blob - Demo/PIC18_WizC/Demo3/interrupt.c
Updated pack to FreeRTOS 10.4.6
[cmsis-freertos] / Demo / PIC18_WizC / Demo3 / interrupt.c
1 /*
2  * FreeRTOS V202111.00
3  * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * http://www.FreeRTOS.org
23  * http://aws.amazon.com/freertos
24  *
25  * 1 tab == 4 spaces!
26  */
27
28 /* 
29 Changes from V3.0.0
30         + Added functionality to only call vTaskSwitchContext() once
31           when handling multiple interruptsources in a single interruptcall.
32
33         + Included Filenames changed to a .c extension to allow stepping through
34           code using F7.
35
36 Changes from V3.0.1
37 */
38
39 #include <pic.h>
40
41 /* Scheduler include files. */
42 #include <FreeRTOS.h>
43 #include <task.h>
44 #include <queue.h>
45
46 static bit uxSwitchRequested;
47
48 /*
49  * Vector for the ISR.
50  */
51 void pointed Interrupt()
52 {
53         /*
54          * Save the context of the current task.
55          */
56         portSAVE_CONTEXT( portINTERRUPTS_FORCED );
57
58         /*
59          * No contextswitch requested yet
60          */
61         uxSwitchRequested       = pdFALSE;
62         
63         /*
64          * Was the interrupt the FreeRTOS SystemTick?
65          */
66         #include <libFreeRTOS/Drivers/Tick/isrTick.c>
67
68 /*******************************************************************************
69 ** DO NOT MODIFY ANYTHING ABOVE THIS LINE
70 ********************************************************************************
71 ** Enter the includes for the ISR-code of the FreeRTOS drivers below.
72 **
73 ** You cannot use local variables. Alternatives are:
74 ** - Use static variables       (Global RAM usage increases)
75 ** - Call a function            (Additional cycles are needed)
76 ** - Use unused SFR's           (preferred, no additional overhead)
77 ** See "../Serial/isrSerialTx.c" for an example of this last option
78 *******************************************************************************/
79
80
81
82         /*
83          * Was the interrupt a byte being received?
84          */
85         #include "../Serial/isrSerialRx.c"
86
87
88         /*
89          * Was the interrupt the Tx register becoming empty?
90          */
91         #include "../Serial/isrSerialTx.c"
92
93
94
95 /*******************************************************************************
96 ** DO NOT MODIFY ANYTHING BELOW THIS LINE
97 *******************************************************************************/
98         /*
99          * Was a contextswitch requested by one of the
100          * interrupthandlers?
101          */
102          if ( uxSwitchRequested )
103          {
104                 vTaskSwitchContext();
105          }
106          
107         /*
108          * Restore the context of the (possibly other) task.
109          */
110         portRESTORE_CONTEXT();
111
112         #pragma asmline retfie  0
113 }