⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keys1s8.c

📁 TI公司的DSP(LF2407A)编写的有霍尔位置传感器的无刷直流电机控制程序,内含子程序说明
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -