-/*****************************************************************************/\r
-/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */\r
-/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */\r
-/* ELIGIBILITY FOR ANY PURPOSES. */\r
-/* (C) Fujitsu Microelectronics Europe GmbH */\r
-/*****************************************************************************/\r
-\r
-#include "RLT.h"\r
-\r
-void RLT_InitializeTimer(unsigned char channel, unsigned char runmode, unsigned char clockmode, unsigned char triggermode, unsigned char outputmode)\r
-{\r
- unsigned short setvalue = 0x00;\r
- \r
- /* Prepare seting for the TMCSR Register */\r
- setvalue |= ( (clockmode << 10) | (triggermode << 7) | ((outputmode & 0x01) << 5) | ((runmode & 0x01) << 4) | 0x02 /* CNTE */ ); \r
-\r
- /* Set the corresponding RLT channel */\r
- switch(channel)\r
- {\r
- case 0:\r
- {\r
- TMCSR0 = setvalue;\r
- break;\r
- }\r
- case 1:\r
- {\r
- TMCSR1 = setvalue;\r
- break;\r
- }\r
- case 2:\r
- {\r
- TMCSR2 = setvalue;\r
- break;\r
- }\r
- case 3:\r
- {\r
- TMCSR3 = setvalue;\r
- break;\r
- }\r
- case 4:\r
- {\r
- TMCSR4 = setvalue;\r
- break;\r
- }\r
- case 5:\r
- {\r
- TMCSR5 = setvalue;\r
- break;\r
- }\r
- case 6:\r
- {\r
- TMCSR6 = setvalue;\r
- break;\r
- }\r
- case 7:\r
- {\r
- TMCSR7 = setvalue;\r
- break;\r
- }\r
- } \r
-}\r
-\r
-void RLT_SetReloadValue(unsigned char channel, unsigned short int value)\r
-{\r
- switch(channel)\r
- {\r
- case 0:\r
- {\r
- TMRLR0 = value;\r
- break;\r
- } \r
- case 1:\r
- {\r
- TMRLR1 = value;\r
- break;\r
- } \r
- case 2:\r
- {\r
- TMRLR2 = value;\r
- break;\r
- } \r
- case 3:\r
- {\r
- TMRLR3 = value;\r
- break;\r
- } \r
- case 4:\r
- {\r
- TMRLR4 = value;\r
- break;\r
- } \r
- case 5:\r
- {\r
- TMRLR5 = value;\r
- break;\r
- } \r
- case 6:\r
- {\r
- TMRLR6 = value;\r
- break;\r
- } \r
- case 7:\r
- {\r
- TMRLR7 = value;\r
- break;\r
- }\r
- } \r
-}\r
-\r
-void RLT_TriggerTimer(unsigned char channel)\r
-{\r
- switch(channel)\r
- {\r
- case 0:\r
- {\r
- TMCSR0_TRG = 1;\r
- break;\r
- } \r
- case 1:\r
- {\r
- TMCSR1_TRG = 1;\r
- break;\r
- } \r
- case 2:\r
- {\r
- TMCSR2_TRG = 1;\r
- break;\r
- } \r
- case 3:\r
- {\r
- TMCSR3_TRG = 1;\r
- break;\r
- } \r
- case 4:\r
- {\r
- TMCSR4_TRG = 1;\r
- break;\r
- } \r
- case 5:\r
- {\r
- TMCSR5_TRG = 1;\r
- break;\r
- } \r
- case 6:\r
- {\r
- TMCSR6_TRG = 1;\r
- break;\r
- } \r
- case 7:\r
- {\r
- TMCSR7_TRG = 1;\r
- break;\r
- }\r
- }\r
-}\r
-\r
-void RLT_EnableInterrupt(unsigned char channel)\r
-{\r
- switch(channel)\r
- {\r
- case 0:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR0_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR0_INTE = 1;\r
- break;\r
- } \r
- case 1:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR1_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR1_INTE = 1;\r
- break;\r
- } \r
- case 2:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR2_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR2_INTE = 1;\r
- break;\r
- } \r
- case 3:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR3_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR3_INTE = 1;\r
- break;\r
- } \r
- case 4:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR4_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR4_INTE = 1;\r
- break;\r
- } \r
- case 5:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR5_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR5_INTE = 1;\r
- break;\r
- } \r
- case 6:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR6_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR6_INTE = 1;\r
- break;\r
- } \r
- case 7:\r
- {\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR7_UF = 0;\r
- \r
- /* Enable Interrupt */\r
- TMCSR7_INTE = 1;\r
- break;\r
- }\r
- }\r
-}\r
-\r
-__interrupt void RLT_Channel0_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR0_UF = 0;\r
- \r
- /* Do what you have to do */\r
- PDR27++;\r
-}\r
-\r
-__interrupt void RLT_Channel1_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR1_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel2_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR2_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel3_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR3_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel4_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR4_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel5_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR5_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel6_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR6_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
-\r
-__interrupt void RLT_Channel7_ISR()\r
-{\r
- /* Clear Pending Interrupt Flag */\r
- TMCSR7_UF = 0;\r
- \r
- /* Do what you have to do */\r
-}\r
+/*****************************************************************************/
+/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
+/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
+/* ELIGIBILITY FOR ANY PURPOSES. */
+/* (C) Fujitsu Microelectronics Europe GmbH */
+/*****************************************************************************/
+
+#include "RLT.h"
+
+void RLT_InitializeTimer(unsigned char channel, unsigned char runmode, unsigned char clockmode, unsigned char triggermode, unsigned char outputmode)
+{
+ unsigned short setvalue = 0x00;
+
+ /* Prepare seting for the TMCSR Register */
+ setvalue |= ( (clockmode << 10) | (triggermode << 7) | ((outputmode & 0x01) << 5) | ((runmode & 0x01) << 4) | 0x02 /* CNTE */ );
+
+ /* Set the corresponding RLT channel */
+ switch(channel)
+ {
+ case 0:
+ {
+ TMCSR0 = setvalue;
+ break;
+ }
+ case 1:
+ {
+ TMCSR1 = setvalue;
+ break;
+ }
+ case 2:
+ {
+ TMCSR2 = setvalue;
+ break;
+ }
+ case 3:
+ {
+ TMCSR3 = setvalue;
+ break;
+ }
+ case 4:
+ {
+ TMCSR4 = setvalue;
+ break;
+ }
+ case 5:
+ {
+ TMCSR5 = setvalue;
+ break;
+ }
+ case 6:
+ {
+ TMCSR6 = setvalue;
+ break;
+ }
+ case 7:
+ {
+ TMCSR7 = setvalue;
+ break;
+ }
+ }
+}
+
+void RLT_SetReloadValue(unsigned char channel, unsigned short int value)
+{
+ switch(channel)
+ {
+ case 0:
+ {
+ TMRLR0 = value;
+ break;
+ }
+ case 1:
+ {
+ TMRLR1 = value;
+ break;
+ }
+ case 2:
+ {
+ TMRLR2 = value;
+ break;
+ }
+ case 3:
+ {
+ TMRLR3 = value;
+ break;
+ }
+ case 4:
+ {
+ TMRLR4 = value;
+ break;
+ }
+ case 5:
+ {
+ TMRLR5 = value;
+ break;
+ }
+ case 6:
+ {
+ TMRLR6 = value;
+ break;
+ }
+ case 7:
+ {
+ TMRLR7 = value;
+ break;
+ }
+ }
+}
+
+void RLT_TriggerTimer(unsigned char channel)
+{
+ switch(channel)
+ {
+ case 0:
+ {
+ TMCSR0_TRG = 1;
+ break;
+ }
+ case 1:
+ {
+ TMCSR1_TRG = 1;
+ break;
+ }
+ case 2:
+ {
+ TMCSR2_TRG = 1;
+ break;
+ }
+ case 3:
+ {
+ TMCSR3_TRG = 1;
+ break;
+ }
+ case 4:
+ {
+ TMCSR4_TRG = 1;
+ break;
+ }
+ case 5:
+ {
+ TMCSR5_TRG = 1;
+ break;
+ }
+ case 6:
+ {
+ TMCSR6_TRG = 1;
+ break;
+ }
+ case 7:
+ {
+ TMCSR7_TRG = 1;
+ break;
+ }
+ }
+}
+
+void RLT_EnableInterrupt(unsigned char channel)
+{
+ switch(channel)
+ {
+ case 0:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR0_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR0_INTE = 1;
+ break;
+ }
+ case 1:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR1_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR1_INTE = 1;
+ break;
+ }
+ case 2:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR2_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR2_INTE = 1;
+ break;
+ }
+ case 3:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR3_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR3_INTE = 1;
+ break;
+ }
+ case 4:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR4_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR4_INTE = 1;
+ break;
+ }
+ case 5:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR5_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR5_INTE = 1;
+ break;
+ }
+ case 6:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR6_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR6_INTE = 1;
+ break;
+ }
+ case 7:
+ {
+ /* Clear Pending Interrupt Flag */
+ TMCSR7_UF = 0;
+
+ /* Enable Interrupt */
+ TMCSR7_INTE = 1;
+ break;
+ }
+ }
+}
+
+__interrupt void RLT_Channel0_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR0_UF = 0;
+
+ /* Do what you have to do */
+ PDR27++;
+}
+
+__interrupt void RLT_Channel1_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR1_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel2_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR2_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel3_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR3_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel4_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR4_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel5_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR5_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel6_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR6_UF = 0;
+
+ /* Do what you have to do */
+}
+
+__interrupt void RLT_Channel7_ISR()
+{
+ /* Clear Pending Interrupt Flag */
+ TMCSR7_UF = 0;
+
+ /* Do what you have to do */
+}