Posted on:
Hi, I have to count pulses by LPC1768. I try to use port P0.24 with function CAP3.1 to driving Timer3 as counter. Example of timer3 configuration:
// counter 3 const unsigned long TCR_COUNT_RESET = 2, TCR_COUNT_ENABLE = 0x01; LPC_SC->PCONP |= (1 << 23); LPC_TIM3->TCR = TCR_COUNT_RESET; LPC_TIM3->CTCR = 0x101; LPC_TIM3->TCR = TCR_COUNT_ENABLE; |
And port definition:
LPC_PINCON->PINSEL1 |= (1 << 17) | (1 << 16); // set pin P0.24 as CAP3.1 LPC_GPIO0->FIODIR &=~(1<<24); // set pin P0.24 as input |
And LPC_TIM3->TC not change. If I configure Timer3 with PCLK as source is OK. When i use P0.24 as input pin is also ok. I can count level changes in main loop. But why not work counting pulses by timer/counter functionality? Maybe I have to match any register more? Regards
Posted on:
>LPC_TIM3->CTCR = 0x101;
0x101 is 0b100000001, but bits 31:4 in CTCR are reserved. You probably
wanted 0b101, which is 0x5. With that configuration you use CAP3.0 and
not CAP3.1 as input. If I'm right with my assumption this is a good
example why one shouldn't use magic numbers in sourcecode and use easy
readable defines instead (or use bit shifts). Mixing this in one file is
also a dangerous thing ...
Posted on:
Hi, i want to count external pulses on my LPC1768 board. I configured CTCR Register for TIMER 0 on CAP0.0. but my TIMER is not working as a COUNTER but its working as TIMER only. i.e. it is taking PCLK as the source & TC incrimenting by considering PCLK only. can anybody suggest any solution.