會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





外部開關、感測器常會用到的上微觸發
新會員
註冊日期:
2016/05/03 21:00
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 199
離線
剛入門的小弟想跟各位前輩取取經

控制系統中經常會用到開關、感測器等input做控制
在某些需要計算次數或者頻率的場合會希望只在上微觸發的時候作動一次

小弟目前的做法是在迴圈內多加入一個旗標去控制,但又覺得讓程式變得很亂
有時if()內的判別式就寫了一長串,想請教各位前輩都用什麼方式做input的上微觸發呢?

目前的寫法:
引用:

int main(void)
{
while(1)
{
if(hall_1 == 0)
{
hall_on = 0; //low時清除旗標
}
if (hall_1 == 1 && hall_on == 0 ) //判別式加入旗標限制
{
Timer3 = TMR3;
TMR3 = 0;
hall_on = 1; //high時打開旗標
GetSpeed();
}
}
}

1月02日 00:38:46
轉換PDF檔 列印


Re: 外部開關、感測器常會用到的上微觸發
資深會員
註冊日期:
2009/04/07 13:30
所屬群組:
註冊會員
文章: 158
等級: 11; EXP: 62
HP : 0 / 265
MP : 52 / 6564
離線
可以看看以下適不適用

int main
(void)
{
   
unsigned char  row_hall_1;



   
row_hall_1 = hall_1;

   while(
1)
   {
      
/*  row_hall_1 = hall_1(+7).....hall_1(+1).hall_1  */
      
row_hall_1 = (row_hall_1 << 1) | hall_1;   

      
/*  row_hall_1 status is the 'L' to 'H'  */
      
if((row_hall_1 & 3) == 1)                  
        {
           
Timer3 = TMR3;
           
TMR3 = 0;
           
GetSpeed();
        }
   }
}

1月02日 11:09:39
轉換PDF檔 列印


Re: 外部開關、感測器常會用到的上微觸發
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14100
等級: 72; EXP: 43
HP : 1071 / 1785
MP : 4700 / 69875
離線
1. 使用微開關做為輸入? 這要考慮到開關彈跳的問題。基本上使用開關做為輸入其動做的速度不會很快,可以用處理按鍵輸入方式來同處理開關的輸入即彈跳問題。

2. 如果輸入的訊號是沒有雜訊的,可以用外部中斷輸入方式來處理。

附加檔案:



jpg  擷取.JPG (46.62 KB)
16_586b4631da88f.jpg 782X515 px

1月03日 14:35:29
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project