From c7aec6e2700dafbbdc3ba3a7a2e246fd9ed7eeff Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Sat, 12 Dec 2009 00:33:26 +0100 Subject: [PATCH] decreased speed for led counter and stop it at the end of main --- MAIN.c | 10 ++++++---- RLT.c | 20 ++++++++++---------- RLT.h | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/MAIN.c b/MAIN.c index bdda7bb..b5d776e 100644 --- a/MAIN.c +++ b/MAIN.c @@ -56,14 +56,14 @@ void main(void) /* Enable LEDs */ DDR14 = 0xFF; - PDR14 = 0x00; + PDR14 = 0xff; /* Initialize Reload Timer Channel 0 */ RLT_InitializeTimer(0, RLT_RUMMODE_RELOAD, RLT_CLOCKMODE_DIV32, RLT_TRIGGER_SOFTWARE, RLT_OUTOUTMODE_HIGHLEVEL); - RLT_SetReloadValue(0,0x1388); // CLKP/32, 0.01s Interval => 0x1388 counts - RLT_EnableInterrupt(0); + RLT_SetReloadValue(0,0xfffe); RLT_TriggerTimer(0); - + RLT_EnableInterrupt(0, 1); + /* Initialize UART4 */ InitUart4(); @@ -179,6 +179,8 @@ void main(void) { Puts4("\n********* FLASH Programming Demo done **********\n"); } + + RLT_EnableInterrupt(0, 0); while(1) /* endless loop */ { diff --git a/RLT.c b/RLT.c index 72d4cf3..eadab63 100644 --- a/RLT.c +++ b/RLT.c @@ -154,7 +154,7 @@ void RLT_TriggerTimer(unsigned char channel) } } -void RLT_EnableInterrupt(unsigned char channel) +void RLT_EnableInterrupt(unsigned char channel, unsigned char enable) { switch(channel) { @@ -164,7 +164,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR0_UF = 0; /* Enable Interrupt */ - TMCSR0_INTE = 1; + TMCSR0_INTE = enable; break; } case 1: @@ -173,7 +173,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR1_UF = 0; /* Enable Interrupt */ - TMCSR1_INTE = 1; + TMCSR1_INTE = enable; break; } case 2: @@ -182,7 +182,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR2_UF = 0; /* Enable Interrupt */ - TMCSR2_INTE = 1; + TMCSR2_INTE = enable; break; } case 3: @@ -191,7 +191,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR3_UF = 0; /* Enable Interrupt */ - TMCSR3_INTE = 1; + TMCSR3_INTE = enable; break; } case 4: @@ -200,7 +200,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR4_UF = 0; /* Enable Interrupt */ - TMCSR4_INTE = 1; + TMCSR4_INTE = enable; break; } case 5: @@ -209,7 +209,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR5_UF = 0; /* Enable Interrupt */ - TMCSR5_INTE = 1; + TMCSR5_INTE = enable; break; } case 6: @@ -218,7 +218,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR6_UF = 0; /* Enable Interrupt */ - TMCSR6_INTE = 1; + TMCSR6_INTE = enable; break; } case 7: @@ -227,7 +227,7 @@ void RLT_EnableInterrupt(unsigned char channel) TMCSR7_UF = 0; /* Enable Interrupt */ - TMCSR7_INTE = 1; + TMCSR7_INTE = enable; break; } } @@ -239,7 +239,7 @@ __interrupt void RLT_Channel0_ISR() TMCSR0_UF = 0; /* Do what you have to do */ - PDR14++; + PDR14--; //since the pins are low active } __interrupt void RLT_Channel1_ISR() diff --git a/RLT.h b/RLT.h index 3290ded..3d8c423 100644 --- a/RLT.h +++ b/RLT.h @@ -30,7 +30,7 @@ void RLT_InitializeTimer(unsigned char channel, unsigned char runmode, unsigned char clockmode, unsigned char triggermode, unsigned char outputmode); void RLT_SetReloadValue(unsigned char channel, unsigned short int value); -void RLT_EnableInterrupt(unsigned char channel); +void RLT_EnableInterrupt(unsigned char channel, unsigned char enable); void RLT_TriggerTimer(unsigned char channel); __interrupt void RLT_Channel0_ISR(); -- 2.25.1