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

標(biāo)題: 問flag如何判斷是第幾個(gè)負(fù)跳變,問題多多 [打印本頁]

作者: 找51hei    時(shí)間: 2015-5-29 17:44
標(biāo)題: 問flag如何判斷是第幾個(gè)負(fù)跳變,問題多多
電機(jī)測(cè)速:INT0采用下降沿負(fù)跳變觸發(fā)方式,第一個(gè)負(fù)跳變T0開始計(jì)時(shí)另flag=0,第二個(gè)負(fù)跳變停止計(jì)時(shí)另flag=1,為一個(gè)周期的時(shí)間即轉(zhuǎn)一圈的時(shí)間,然后換算為r/min.為了使顯示清楚,用T1控制大約每隔0.3秒采集刷新顯示一次。
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#define DUAN XBYTE[0X8004]
#define WEI XBYTE[0x8002]
#define uchar unsigned char
#define uint  unsigned int
uchar tabledu[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
uchar QIAN,BAI,SHI,GE,CNT,FLAG=0;//此處falg初值為0

unsigned long T,N;
void timer1(void) interrupt 3
{
TH1=0X3C;
TL1=0XB0;
CNT--;
if(CNT==0)
{
  CNT=3;
  EX0=1;
  IE0=0;
}
}
void int0(void) interrupt 0
{


if(FLAG==1)
{
  TR0=0;
  T=TH0*256+TL0;
  N=30000000/T;
  QIAN=N/1000;
  BAI=N%1000/100;
  SHI=N%1000%100/10;
  GE=N%1000%100%10;
  FLAG=0;
  EX0=0;
}
else
{
  TR0=1;
  TH0=0;
  TL0=0;
   FLAG=1;
}
}
void delay(uint t)
{
for(;t>0;t--);

}
main()
{
CNT=3;
TMOD=0X11;
EA=1;
ET1=1;
TH1=0X3C;
TL1=0XB0;
IT0=1;
TR1=1;
TF1=0;
for(;;)
{
  WEI=1;
  DUAN=tabledu[GE];
  delay(20);
  WEI=2;
  DUAN=tabledu[SHI];
  delay(20);
  WEI=4;
  DUAN=tabledu[BAI];
  delay(20);
  WEI=8;
  DUAN=tabledu[QIAN];
  delay(20);
}
}


問題,第一個(gè)負(fù)跳變來臨,INT0中斷,執(zhí)行else后面括號(hào)的程序,T0開始計(jì)時(shí),怎么就i另flag=1了呢,或者第二個(gè)負(fù)跳變來臨flag怎么知道??應(yīng)該是第二個(gè)負(fù)跳變來臨,再執(zhí)行中斷程序,如何知道第二個(gè)負(fù)跳變來臨?不明白。想了半天了,氣死我了都。還有DUAN , WEI后為啥需要延時(shí)??

作者: 電子愛好者life    時(shí)間: 2015-5-30 07:35
你定義一個(gè)全局變量來計(jì)算進(jìn)中斷函數(shù)次數(shù)試一試
作者: 找51hei    時(shí)間: 2015-5-30 09:54
電子愛好者life 發(fā)表于 2015-5-30 07:35
你定義一個(gè)全局變量來計(jì)算進(jìn)中斷函數(shù)次數(shù)試一試

現(xiàn)在的問題就是,第一次負(fù)跳變中斷執(zhí)行,flag置0,第二次負(fù)跳變來了還要執(zhí)行中斷的,這個(gè)中斷程序里自己怎么識(shí)別?o(︶︿︶)o 唉我是門外漢,不懂啊。程序是別人編寫的運(yùn)行正確。
作者: 電子愛好者life    時(shí)間: 2015-5-30 23:14
找妹子 發(fā)表于 2015-5-30 09:54
現(xiàn)在的問題就是,第一次負(fù)跳變中斷執(zhí)行,flag置0,第二次負(fù)跳變來了還要執(zhí)行中斷的,這個(gè)中斷程序里自己 ...

首先啟動(dòng)定時(shí)中斷1,每200ms 檢測(cè)打開外部中斷,第一次進(jìn)入外部中斷執(zhí)行else里的內(nèi)容,并使flag=1;第二次進(jìn)入外部中斷執(zhí)行flag=1里的內(nèi)容,并關(guān)閉定時(shí)器和外部中斷,這樣就實(shí)現(xiàn)兩次進(jìn)入中斷后不再進(jìn)入外部中斷了。
作者: 找51hei    時(shí)間: 2015-5-31 12:19
電子愛好者life 發(fā)表于 2015-5-30 23:14
首先啟動(dòng)定時(shí)中斷1,每200ms 檢測(cè)打開外部中斷,第一次進(jìn)入外部中斷執(zhí)行else里的內(nèi)容,并使flag=1;第二 ...

3克油!!
作者: 找51hei    時(shí)間: 2015-5-31 14:36
電子愛好者life 發(fā)表于 2015-5-30 23:14
首先啟動(dòng)定時(shí)中斷1,每200ms 檢測(cè)打開外部中斷,第一次進(jìn)入外部中斷執(zhí)行else里的內(nèi)容,并使flag=1;第二 ...

謝謝,這個(gè)解釋我懂了這個(gè)程序。嗨喲 就是為啥DUAN、WEI分配后,必須有延時(shí)delay程序啊??




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 黑人巨大精品欧美黑白配亚洲 | 天堂素人约啪 | 中文字幕成人在线 | 精品一区二区三区四区 | 欧美一级黄带 | 男女深夜网站 | aaa一区 | 国产精品日韩欧美 | 久热伊人| 国产98色在线 | 日韩 | 日韩成人专区 | 国产精品a久久久久 | 天天精品综合 | 亚洲成人一区二区三区 | 日韩免费av一区二区 | 亚洲色图插插插 | 91亚洲一区| 欧美另类日韩 | 日本黄色大片免费看 | 九九久久99 | 国产精品成人一区二区三区 | 中文字幕福利视频 | 激情综合五月 | 久久综合伊人一区二区三 | 日韩精品一区二区三区在线观看 | 成人欧美一区二区三区1314 | 久草在线青青草 | 黄 色 毛片免费 | 日韩成人一区 | 欧美日韩不卡合集视频 | 国产一级视频免费播放 | а天堂中文最新一区二区三区 | 国产精品96久久久久久 | 91久操视频 | av手机在线播放 | 国产精品久久久久久久久久妞妞 | 麻豆成人在线视频 | www成人免费视频 | 一区二区三区久久 | 亚洲精品久久久久久久久久久久久 | 四虎影 |