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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4877|回復: 0
收起左側

求助大神看看原因,avrM16做連續頻率采集。

[復制鏈接]
ID:135062 發表于 2016-7-26 11:41 | 顯示全部樓層 |閱讀模式
4黑幣
avrM16做連續頻率采集,采集同時輸出500HZ,占空比任意(我用50%)的pwm。我用T1捕獲,端口接ICP1PB3輸出pwm。現在問題是,我同時開啟T0,T1輸出不是500HZ,而是隨著輸入頻率改變,并且中間我加了ADC程序,輸出頻率也會改變。但是我只開T0,不加捕獲,輸出的一直是500HZ
#include <iom16v.h>
#include <macros.h>   
#include "delay.h"
#define uint  unsigned int
#define uchar unsigned char
#define PWM_0  PORTB&=~(1<<PB3)
#define PWM_1  PORTB|=(1<<PB3)
signed int wendu,flag,flag1,jd,count,flag4,flag3;
signed int yanwu=10;
volatile unsigned int CAPi=0,CAPj=0;
volatile unsigned intCAP[10]={0,0,0,0,0,0,0,0,0,0};
//TIMER1 initialize - prescale:1
// WGM: 0) Normal, TOP=0xFFFF
// desired value: 1mSec
// actual value:  1.000mSec (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x00;
TCNT0 = 0x9c;
OCR0  =0xF0;  //改變此值可改變占空比
TCCR0 = 0x02; //設置為快速PWM模式,匹配時OC01,分頻系數8
}                  
void main(void)
{
uint dianya;
       DDRC=0xFF;
       jd=10;
       DDRB= 0Xff;
PORTB=0XFF;
DDRD&=~(1<<PD6);
PORTD|=1<<PD6;
TCCR1B=(1<<ICNC1)|(1<<ICES1);
TCCR1B|=0x03;
TIMSK=1<<TICIE1;
MCUCR = 0x00;
GICR  =0x00;
timer0_init();
TIMSK = 0x21; //timer interrupt sources
SEI(); //re-enable interrupts  等價與SREG=0x80
while(1)
{
   DDRA&=~BIT(0);
             ADMUX=0x40;//4位是通道  參考是AVCC
   ADCSRA=0x87; //使能ADC,單次轉換,預分頻為128
   ADCSRA|=(1<<ADSC); //啟動首次轉換
   while(!(ADCSRA&(1<<ADIF))); //等待轉結束循環
   ADCSRA|=(1<<ADIF);  //清除ADIF
   dianya=ADCL;//先讀 低位 這個必須遵守 度高位后被更新數據
   dianya=ADCH*256+dianya;
              yanwu=dianya*0.09765625;
              if(yanwu>78)
              flag1=1;
              else
              flag1=0;
      
              if((flag==1)&&(flag1==1))
{PORTC=0xff;}
else
{PORTC=0;}
  }
}
#pragma interrupt_handler Timer1_icp_isr:6
void Timer1_icp_isr(void) //6 號中斷
{
unsigned char i;
if(CAPi==0)
{CAPi=ICR1;CAP[0]=ICR1;}//TCCR0 = 0;}
else
{ CAP[1]=ICR1;
CAPj=ICR1-CAPi;
CAPj=1000000/8/CAPj;
if(CAPj>3000)
{flag=1;//TIMSK=0x21;timer0_init();SEI();
  }
else
flag=0;
TCCR1B&=0xFC;//11000000
TCCR1B|=0x03;  
TCNT1=0;
CAPi=0;
CAPj=0;
}
}  
#pragma interrupt_handlertimer0_ovf_isr:iv_TIM0_OVF //定時器0中斷
void timer0_ovf_isr(void)
{
TCNT0 = 0x9c;
if(count<jd)//PWM比較
        {
         PWM_1;//高電平轉
        }
        else
        PWM_0;//低電平停
  
  count++;
        if(count>20)//周期
        count=0;
      
}

仿真.rar

70.29 KB, 下載次數: 6, 下載積分: 黑幣 -5

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日韩欧美 | 日韩不卡一二区 | 欧美日韩国产精品 | 天天夜天天操 | 国产激情在线观看 | 精品国产欧美在线 | 午夜精品视频一区 | 国产视频中文字幕 | 武道仙尊动漫在线观看 | 日韩精品免费一区 | 欧美操操操 | 欧美成人久久 | 日韩在线看片 | 国产99久久精品一区二区永久免费 | 在线观看亚洲精品视频 | 日韩一区二区三区在线观看 | 成人精品鲁一区一区二区 | 国产h视频 | 日韩久久久久 | 亚洲欧美日本国产 | 视频羞羞 | 国产精品成人国产乱一区 | 伊人网91 | 在线观看免费国产 | 日本精品一区二区三区视频 | 99精品欧美一区二区蜜桃免费 | 羞羞视频网 | 精品96久久久久久中文字幕无 | 国产精品毛片一区二区在线看 | 国产精品欧美一区二区三区不卡 | 欧美日韩专区 | 中文字幕亚洲国产 | 亚洲精品99999 | 男女羞羞视频在线 | 国产网站在线免费观看 | 免费一级大片 | 成人美女免费网站视频 | 亚洲一区二区在线电影 | 97精品久久| 久操亚洲 | 国产精品久久精品 |