久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: C8051F410單片機利用pca捕獲外部脈沖 [打印本頁]

作者: y電子設計dsd    時間: 2019-7-31 14:16
標題: C8051F410單片機利用pca捕獲外部脈沖
//-----------------------------------------------------------------------------
// 聲明:外部引腳的脈沖輸入CEX0為P0^0,
//-----------------------------------------------------------------------------

#include <c8051f410.h>                 // SFR declarations
#include"UART.h"
#include <stdio.h>

#define SYSCLK      24500000           // SYSCLK frequency in Hz
#define BAUDRATE        9600           // Baud rate of UART in bps

sfr16 PCA0CP0 = 0xFB;                  // PCA0 Compare Register Definition
unsigned int CLKNUM = 0;
float period;

void OSCILLATOR_Init (void);
void PORT_Init (void);
void PCA0_Init (void);
static unsigned int capture_period;
unsigned int counter;
void main (void)
{
   PCA0MD = 0x00;                      // Disable watchdog timer

   PORT_Init ();                       // Initialize crossbar and GPIO
   OSCILLATOR_Init ();                 // Initialize oscillator
   PCA0_Init ();                       // Initialize PCA0
   UART0_Init ();

   EA = 1;

   while (1)
   {
      printf("CLKNUM= %d us\n",CLKNUM);
         printf("period= %f us\n",period);
   }
}


void OSCILLATOR_Init (void)
{
   OSCICN = 0x87;                      // Set internal oscillator to run
                                       // at its maximum frequency

   CLKSEL = 0x00;                      // Select the internal osc. as
                                       // the SYSCLK source
     RSTSRC = 0x04;                      // enable missing clock detector(串口需要)
}

void PORT_Init (void)
{
   XBR0    = 0x01;                     //串口通信使能
   XBR1    = 0x41;                     // Route CEX0 to P0.0,
                                       // Enable crossbar and weak pull-ups
}

void PCA0_Init (void)
{
   PCA0CN = 0x00;                      // Stop counter; clear all flags
   PCA0MD = 0x08;                      // Use 系統(tǒng)時鐘 as time base
   PCA0CPM0 = 0x21;                    // Module 0 = Rising Edge Capture Mode
                                       // enable CCF flag.
   EIE1 = 0x10;                       // Enable PCA interrupts  
   CR = 1;                             // Start PCA counter
}
void PCA0_ISR (void) interrupt 11
{
   static unsigned int current_capture_value, previous_capture_value;

   if (CCF0)                                                                         // If Module 0 caused the interrupt
   {
//          CLKNUM++;
         
      CCF0 = 0;                                                                      // Clear module 0 interrupt flag.   
      current_capture_value = PCA0CP0;                                               // Store most recent capture value     
      capture_period = current_capture_value - previous_capture_value;               // Calculate capture period from last two values.
      previous_capture_value = current_capture_value;                                // Update previous capture value with most recent info.
            period = capture_period *4.0816326530612244897959183673469e-8;
         
         
         
         
     }
   else                                // Interrupt was caused by other bits.
   {
      PCA0CN &= ~0x86;                 // Clear other interrupt flags for PCA
   }
}

作者: lyl_420819    時間: 2019-11-16 17:01
好資料,學習了,謝謝分享。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人在线观看网站 | 欧美午夜视频 | 国产欧美精品一区二区色综合朱莉 | 精品久久久av | 9191av| 美女午夜影院 | 亚洲综合五月天婷婷 | av中文字幕在线播放 | 亚洲毛片在线观看 | av片网站| 91成人| 日本在线看 | 欧美一区免费 | 成人精品鲁一区一区二区 | 日韩精品一区二区三区四区视频 | 精品国产欧美 | 午夜视频一区二区三区 | 日韩精品一区二区三区中文在线 | 国产精品久久久久久久久久久免费看 | 99一级毛片 | 超碰免费在线观看 | 久久国产精品无码网站 | 人操人免费视频 | 欧美日韩在线电影 | 国产精品久久久久久妇女6080 | 免费人成在线观看网站 | 久久久999免费视频 999久久久久久久久6666 | 国产97人人超碰caoprom | 91传媒在线观看 | 久久久久99 | 亚洲成人福利在线观看 | 国产成人精品一区二三区在线观看 | 精品国产视频 | 日韩中文字幕在线观看 | 黄色精品 | 国产精品国产a | 久久久久国产一区二区三区不卡 | 日本精品裸体写真集在线观看 | 九九综合 | 日韩视频专区 | 午夜精品一区二区三区在线视频 |