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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1418|回復: 1
收起左側

芯片是NUC029LAN,單片機檢測高低電平的周期

[復制鏈接]
ID:1091366 發表于 2023-9-5 22:45 | 顯示全部樓層 |閱讀模式
用單片機來檢測方波信號的周期,設定在714ms-833ms之間,認為是正確的 報警一次,小于714ms,報警兩次,大于833ms,報警三次,目前程序邏輯上還有問題,希望大家能找出來

單片機源程序如下:
#include "NUC029xAN.h"
#include "timer.h"
#include <stdio.h>
#include "gpio.h"
#include <string.h>


void SYS_Init(void)
{

    SYS_UnlockReg();     
    CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_HIRC, CLK_CLKDIV_HCLK(1));   
    CLK_EnableXtalRC(CLK_PWRCON_XTL12M_EN_Msk);
    CLK_WaitClockReady(CLK_CLKSTATUS_XTL12M_STB_Msk);   
    CLK_EnableModuleClock(PWM01_MODULE);
   CLK_EnableModuleClock(TMR0_MODULE);
       SYS_LockReg();

}


void GPIO_Init(void)
{
      GPIO_SetMode(P4,BIT3,GPIO_PMD_OUTPUT);//BUZZER
                  P43=0;
      GPIO_SetMode(P2, BIT7, GPIO_PMD_INPUT);//檢測電路        
}

static void delay_ms(uint16_t nDelay)
{
    uint16_t nIndex;
    for(nIndex = 0; nIndex < nDelay; nIndex++)
    {
        CLK_SysTickDelay(1000);
    }
}

uint8_t i;
void beep(int count)
{
    for(i = 0; i < count; i++)
    {
        // 打開蜂鳴器
        P43 = 1;
        delay_ms(200); // 延遲一段時間,產生蜂鳴器聲音
        // 關閉蜂鳴器
        P43 = 0;
        delay_ms(200); // 延遲一段時間,產生間隔
    }
}


  void Timer0_Init(void)
{
    TIMER_Open(TIMER0, TIMER_PERIODIC_MODE, 1000); // 設置定時器0為周期模式,定時1ms
    TIMER_EnableInt(TIMER0); // 使能定時器0的中斷
    NVIC_EnableIRQ(TMR0_IRQn); // 使能定時器0的中斷向量
    TIMER_Start(TIMER0); // 啟動定時器0
}


void TMR0_IRQHandler(void)
{
    uint8_t state = 1; // 0表示低電平,1表示高電平
    uint16_t high = 0; // 高電平加
    uint16_t low = 0; // 低電平加
    if (P27 == 0)  // 檢測到低電平
    {
        if (state == 1) // 如果之前是高電平狀態,則開始計時低電平持續時間
        {
            state = 0;
            low = 0;
        }
        low++;
    }
   else
         {
        if (state == 0) // 如果之前是低電平狀態,則開始計時高電平持續時間
        {
            state = 1;
            high = 0;
        }
        high++;
                        }
         
    if (high==low && high + low >=714&& high + low <= 833)
    {
        beep(1);
    }
    else if (high + low < 714 && high+low>0)
    {
        beep(2);
    }
    else if (high + low > 833)
    {
        beep(3);
    }
    TIMER_ClearIntFlag(TIMER0);    // 清除定時器0的中斷標志


        }  

/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function                                                                                           */
/*---------------------------------------------------------------------------------------------------------*/

int main(void)
{
    SYS_UnlockReg();
    SYS_Init();
    SYS_LockReg();
    LcmInit();
    GPIO_Init();


   while(1)
{                 

}
}

回復

使用道具 舉報

ID:123289 發表于 2023-9-6 17:15 | 顯示全部樓層
算是考試嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产精品国产专区不蜜 | 亚洲综合电影 | 在线观看视频亚洲 | 国产欧美久久精品 | 国产一区二区三区欧美 | 一区二区三区观看视频 | 成人一区二区视频 | 久久久久国产精品一区二区 | 中文字幕av亚洲精品一部二部 | 日韩免费福利视频 | 久久精品黄色 | 欧美一区二区三区精品 | 亚洲 欧美 日韩在线 | 日韩一区二区三区在线观看视频 | 黄免费观看 | 日韩中出 | 亚洲91精品 | 亚洲热在线视频 | 久久精品中文字幕 | 精品久久久久久久久久久 | 精品91久久 | 日韩高清一区二区 | 日日天天 | www.久久久久久久久久久久 | 看av电影| www.蜜桃av | 国产一级黄色网 | av性色全交蜜桃成熟时 | 网站一区二区三区 | 91精品久久久久久久久久入口 | 日本精品久久 | 91精品国产乱码久久蜜臀 | 盗摄精品av一区二区三区 | 亚洲成人高清 | 91影院在线观看 | 9999国产精品欧美久久久久久 | 久久亚洲精品视频 | 狠狠干狠狠操 | 天天天久久久 | 国产传媒毛片精品视频第一次 | 久久精品亚洲精品国产欧美 |