Arkadaşlar merhaba ; http://www.micropik.com/PDF/HCSR04.pdf (http://www.micropik.com/PDF/HCSR04.pdf) sitedeki sensörle bir deneme yapmak istiyorum , fakat lpc2368 timer capture özelliğini kullanamadım.
* Kesmenin yükselen kenarda olması gerekiyor ters çalışıyor. -
* P1.26 - CAP0.0 pinsel ayarlarını yaptım +
* "YPacc = T0CR0;" değişkeni üzerinde işlem yapmam gerekiyor. Fakat istediğim değere ulaşamıyorum. -
* Testi butonla yapmaya çalışıyor 5 sn butona basıldığında "YPacc" değişkeni saçmalıyor.
Mcu: Lpc2368
CCLK : 48 Mhz
Timer : 48/4= 12 Mhz
Timer Capture init
void init_timer ( void )
{
PINSEL3 |= 0x00300000;
PCONP = (PCONP & 0xFFE87FDE) | (1UL<<1); /* Enable peripheral clock for Timer0 (default is enabled) */
T0CTCR = 0x01; /* binary: 00000001 */
T0TC = 0x00000000; /* decimal 0 */
T0PR = 0x00002EE0; /* decimal 12000 */
T0MCR = 0x0000; /* binary: 00000000_00000000 */
T0MR0 = 0x00000000; /* decimal 0 */
T0MR1 = 0x00000000; /* decimal 0 */
T0MR2 = 0x00000000; /* decimal 0 */
T0MR3 = 0x00000000; /* decimal 0 */
T0CCR = 0x0000; /* binary: 00000000_00000000 */
T0EMR = 0x0000; /* binary: 00000000_00000000 */
T0TCR = 0x01; /* binary: 00000001 */
VICVectAddr4 = (unsigned long) TIMER0_IRQHandler;
VICVectPriority4 = 15 ;
VICIntEnable |= (1UL<<4);
}
Timer Capture kesme
void TIMER0_IRQHandler (void) __irq
{
int YPacc = 0;
T0TCR = 0x02;
T0PR = 0x00000000;
YPacc = T0CR0;
T0IR = 0xFF;
T0TCR = 0x01;
VICVectAddr =0;
}