lpc2368 hc-sr04 sensör kullanımı

Başlatan armsistem, 18 Haziran 2014, 17:23:32

armsistem

Arkadaşlar merhaba ; 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;   
}