keys1s8.c

来自「TI公司的DSP(LF2407A)编写的有霍尔位置传感器的无刷直流电机控制程序,」· C语言 代码 · 共 79 行

C
79
字号
#include <regs240x.h>

void KeysIOinit()
{
    MCRA=MCRA&0x00c7;		     	// IOPA3,IOPA4,IOPA5,IOPB端口配置为一般的I/O功能,	TMS320LF240x的
                                    // 端口均为8位,MCRA为16位因此控制了IOPA和IOPB的设置
    PBDATDIR=0x00FF;	     		// IOPB端口设置为输入方式 
    PADATDIR=PADATDIR|0x0FF38;		
	PADATDIR=PADATDIR&0x0FF00;      //IOPA3,IOPA4,IOPA5 设置为输出方式,且LEDCLK=1
    PADATDIR=PADATDIR|0x0FF10;      // IOPA3,IOPA4,IOPA5 设置为输出方式,选通KEYC;
}

int Keys1s8(void)
{
    unsigned long int i = 0;
    KeysIOinit();	    // I/O初始化子程序	

    for (i=0; i<10; i++){}               //延时
//判是否按下键
    if ((PBDATDIR&0x00FF)!=0x00ff)
    {
    	for (i=0; i<1000; i++){}        //延时消抖
    	
        if ((PBDATDIR&0x00FF)==0x00FE)
        {
    		while ((PBDATDIR&0x00FF)==0x00FE) //判S1是否送开
				for (i=0; i<1000; i++){}     
			return (1);	  //若按下,返回1		      
    	}
    	if ((PBDATDIR&0x00FF)==0x00Fd)
        {
    		while ((PBDATDIR&0x00FF)==0x00Fd) //判S2是否送开
				for (i=0; i<1000; i++){}     
			return (2);	  //若按下,返回2		      
    	}
    	if ((PBDATDIR&0x00FF)==0x00Fb)
        {
    		while ((PBDATDIR&0x00FF)==0x00Fb) //判S3是否送开
				for (i=0; i<1000; i++){}     
			return (3);	  //若按下,返回3		      
    	}
    	if ((PBDATDIR&0x00FF)==0x00F7)
        {
    		while ((PBDATDIR&0x00FF)==0x00F7) //判S4是否送开
				for (i=0; i<1000; i++){}     
			return (4);	  //若按下,返回4	      
    	}
    	if ((PBDATDIR&0x00FF)==0x00eF)
        {
    		while ((PBDATDIR&0x00FF)==0x00EF) //判S5是否送开
				for (i=0; i<1000; i++){}     
			return (5);	  //若按下,返回5		      
    	}
    	if ((PBDATDIR&0x00FF)==0x00dF)
        {
    		while ((PBDATDIR&0x00FF)==0x00dF) //判S6是否送开
				for (i=0; i<1000; i++){}     
			return (6);	  //若按下,返回6		      
    	}
    	if ((PBDATDIR&0x00FF)==0x00bF)
        {
    		while ((PBDATDIR&0x00FF)==0x00bF) //判S7是否送开
				for (i=0; i<1000; i++){}     
			return (7);	  //若按下,返回7	      
    	}
    	if ((PBDATDIR&0x00FF)==0x007F)
        {
    		while ((PBDATDIR&0x00FF)==0x007F) //判S8是否送开
				for (i=0; i<1000; i++){}     
			return (8);	  //若按下,返回8	      
    	}
    }
    
   return (0);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?