Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: armsistem - 18 Haziran 2014, 17:23:32

Başlık: lpc2368 hc-sr04 sensör kullanımı
Gönderen: armsistem - 18 Haziran 2014, 17:23:32
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;   
}