回答

收藏

[求助] 用按鈕控制DAC電壓,遇到問題,請協助。

英飞凌 英飞凌 2830 人阅读 | 0 人回复 | 2013-03-24


1.這程式的目標是按鈕按第一次(y=1)時,讓LED亮某種形式,
  按第二次改變,第三次改變,第四次改變,按第五次時,程式準備重來,請大家幫忙改正,謝謝。
2.我用的cpu 時脈是93.75khz,雖然可算出時間,可是我不知道delay那個副程式
  執行了幾個cycle? 所以到底delay了多久?


#include <m8c.h>        
#include "PSoCAPI.h"   
int x,y;
int checkbuttom,key;
void delay(unsigned long a);
unsigned long i;

void main()  //port 05 輸出  
{
    DAC8_1_Start(3);         // 啟動 DAC8
    DAC8_1_WriteBlind(0);   //輸出
   
        key=PRT0DR&&0x40;  
       
    while(1)
    {   
            checkbuttom=0;
        while(key==0x40&&checkbuttom==0)  //P0[6]被按下,而且checkbuttom==0
                {   
                    delay(20);          //避開接點反彈跳
                        while(key==0x40);  
                        delay(20);           //避開接點反彈跳
                        y+=1;                //按鍵跳起來時,馬上加1,但是不太對? key!=0的時間好像很長。
                        checkbuttom=1;
                }
               
                if(y==1)
                {        x=254;      
            DAC8_1_WriteBlind(x);
                }
                if(y==2)
                {        x=127;      
            DAC8_1_WriteBlind(x);
                }
                if(y==3)
                {        x=64;      
            DAC8_1_WriteBlind(x);
                }
                if(y==4)
                {        x=127;      
            DAC8_1_WriteBlind(x);
                }
               
                delay(1000);
               
        }       
       
       
}
               
        void delay(unsigned long a)
        {  
                   for ( i = 0;i < x;i++ ) ;
        }       
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条