X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=pyfrprog.git;a=blobdiff_plain;f=RLT.c;h=38a97dfeafaf41724a4c0dcd68aa1179a6b0a8d6;hp=8c637ad9b19b4b24ec219a1858af7667df07319b;hb=103f63b08222a17389551b7cce029efef63078cc;hpb=895fa55e3ac24e1f2bfd28cbc8726617c352ee0c diff --git a/RLT.c b/RLT.c index 8c637ad..38a97df 100644 --- a/RLT.c +++ b/RLT.c @@ -1,299 +1,299 @@ -/*****************************************************************************/ -/* 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 */ -} +/*****************************************************************************/ +/* 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 */ +}