欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3402|回復: 1
打印 上一主題 下一主題
收起左側

基于Atmega328p 單片機的方波三角波識別

[復制鏈接]
跳轉到指定樓層
樓主
ID:790663 發表于 2020-6-27 07:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
之前寫了一篇關于波形識別的文章(2019年5月24日),原文章被吞。現在改進后重新發文。主要修改了一些拼寫錯誤

ATMEGA328P-AU,一種集成電路 (IC),核心處理器是AVR,閃存容量為32KB。本問題提出一種用Atmega 328實現 方波三角波波形識別的代碼。代碼主要通過AVR單片機內部中斷實現。開發板為ardino。主要參考資料

www點xjishu點com/zhuanli/54/201711478206_2.html

注意開頭需要加入加入頭文件math,因為涉及math運算

static int min = 0x0F;

static int max = 0;

static int prev_data;

int low = 768;//5V 以內

int up = 1024;

static up_count;

int peak_count;





char disp;//用字符串格式顯示



ISR(ADC_vect) {//設置ADC比較中斷

  int adc_data = ADCW;//ADCW是讀取所有數據

  if (adc_data > max) max = adc_data;//更新最大最小值

  if (adc_data < min) min = adc_data;


  if (adc_data > up) peak_count =peak_count +1;

  if (adc_data > low)up_count =upcount+1;



  else if (prev_data > thresh_low && up_count > 65) {



    //計算方波三角波的占空比值來區分方波三角波。三角波約為0.4,正弦波約為0.57,方波大于0.8

    ratio =peak_count/up_count;



up_count = 0;

    peak_count = 0;

  //按照比例計算電壓幅值

    amplitude = (5/(double)1024)*(max - min);

    amplitude =round(amplitude*10);



    frequency = (1/(up_count * 0.001))*7.8;//注意頻率的計算方法

    frequency = round(frequency);





    thresh_low = round((max-min)/2 + min);

    thresh_up = round((max-min)*0.67 + min);

    max = 0;

    min = 1023;



  }

  prev_data = adc_data;

}



ISR(TIMER0_COMPA_vect){//注意這里使用即使器比較模式

  ADCSRA |= 1<<ADSC; //這里是用了計時器的比較模式

}

注意,本程序只包含中斷程序,在主程序中需要對ADC和timer0的寄存器進行定義。這里將寄存器定義為ADC 32分頻,timer0 256分頻。當timer0 置為4時,觸發ADC中斷。判斷波形后,可以用ratio這種方法驅動LED燈,來指示波形。頻率可以用LCD1602顯示.這里可以參考

www點elecfans點com/xianshi/20171018566270.html

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2020-6-28 18:45 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表