历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2019年09月16日 | 中断-按键控制LED灯

2019-09-16 来源:eefocus

三个按键分别控制三个LED灯

完整项目请去我的资源下载页xjp的资源

初始化函数:

/*

 * init.c: 进行一些初始化

 */ 

 

#include "s3c24xx.h"

 

/*

 * LED1,LED2,LED4对应GPF4、GPF5、GPF6

 */

#define GPF4_out (1<<(4*2)) //定义为01 输出

#define GPF5_out (1<<(5*2))

#define GPF6_out (1<<(6*2))

 

#define GPF4_msk (3<<(4*2)) //定义为11

#define GPF5_msk (3<<(5*2))

#define GPF6_msk (3<<(6*2))

 

/*

 * S2,S3,S4对应GPF0、GPF2、GPG3

  EINT0    EINT2 EINT11

 */

#define GPF0_eint     (0x2<<(0*2)) //10

#define GPF2_eint     (0x2<<(2*2))

#define GPG3_eint     (0x2<<(3*2)) //3*2:    2 代表一个节点站两位

 

#define GPF0_msk    (3<<(0*2)) //11

#define GPF2_msk    (3<<(2*2))

#define GPG3_msk    (3<<(3*2))

 

/*

 * 关闭WATCHDOG,否则CPU会不断重启

 *操作WTCON寄存器

 */

void disable_watch_dog(void)

{

   WTCON = 0;  // 关闭WATCHDOG很简单,往这个寄存器写0即可

}

 

void init_led(void)

{

    // LED1,LED2,LED4对应的3根引脚设为输出

   GPFCON &= ~(GPF0_msk|GPF2_msk|GPG3_msk);//先清零

   GPFCON |=(GPF4_out|GPF5_out|GPF6_out);//后置位

}

 

/*

 * 初始化GPIO引脚为外部中断

 * GPIO引脚用作外部中断时,默认为低电平触发、IRQ方式(不用设置INTMOD)

 */ 

void init_irq( )

{

    // S2,S3对应的2根引脚设为中断引脚 EINT0,ENT2

  GPFCON &= ~(GPF0_msk|GPF2_msk);//

  GPFCON |=    (GPF0_eint|GPF2_eint);

 

    // S4对应的引脚设为中断引脚EINT11

       GPGCON &= ~GPG3_msk;

GPGCON |= GPG3_eint;

    

    // 对于EINT11,需要在EINTMASK寄存器中使能它

    EINTMASK &= ~(1<<11);//【11】位清零

EINTMASK |=    (0<<11);//【11】位写零

//EINTMASK[11]中写零,等价于

//EINTMASK &= ~(1<<11);

        

    /*

     * 设定优先级:

     * ARB_SEL0 = 00b, ARB_MODE0 = 0: REQ1 > REQ3,即EINT0 > EINT2

     * 仲裁器1、6无需设置

     * 最终:

     * EINT0 > EINT2 > EINT11即K2 > K3 > K4

     * 在PRIORITY中设置

     */

 

 

     //PRIORITY 复位值为0x7f          0111 1111      

     // ARB_SEL0 = 00b,[8:7]=00      ARB_MODE0 = 0  [0]=0

    PRIORITY &= ~((3<<7)|(1<<0));

 

    

 

    // EINT0、EINT2、EINT8_23使能,在INTMSK中设置

     INTMSK   &= (~(1<<0)) & (~(1<<2)) & (~(1<<5));

}

 

 

 

中断函数

#include "s3c24xx.h"

 

void EINT_Handle()

{

    unsigned long oft = INTOFFSET;//读取中断偏移量

    unsigned long val;

    

    switch( oft )

    {

        // S2被按下,LED1点亮,再次按下,LED1熄灭

          case 0: //EINT0

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<4);      // LED1点亮

            break;

        }

        // S3被按下,LED2点亮,再次按下,LED2熄灭

         case 2://EINT2

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<5);      // LED2点亮

            break;

        }

        // K4被按下,LED3点亮,再次按下,LED3熄灭

          case 5://EINT11

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<6);      // LED4点亮                

            break;

        }

 

        default:

            break;

    }

 

    //清中断

    if( oft == 5 ) 

        EINTPEND = (1<<11);   // EINT8_23合用IRQ5

    SRCPND = 1<    INTPND = 1<    

}


推荐阅读

史海拾趣

Floeth Electronic Ltd公司的发展小趣事

Floeth Electronic Ltd公司的发展故事

故事一:技术创新与产品线拓展

Floeth Electronic Ltd自1987年在德国迪特FLOETH成立以来,始终致力于电力自动化领域的技术创新。公司最初专注于DC-DC转换器的研发与生产,针对工业、汽车及机载设备设计了能在极端温度(-40℃至+105℃)下稳定工作的产品。随着市场需求的变化,Floeth Electronic逐步扩展了其产品线,推出了包括转换器、驱动器、控制器、放大器、过滤器、逆变器和脉冲变压器在内的多种电力自动化产品。这些产品不仅满足了工业客户对高性能和可靠性的需求,还因其高绝缘性和符合EN/UL/CSA等安全法规认证而备受信赖。

故事二:台湾生产单元的建立

为了进一步提升产能和效率,Floeth Electronic于1994年在台湾桃园设立了生产单元。这一战略举措使得公司能够更灵活地应对亚洲市场的需求,并利用台湾成熟的电子制造业供应链优势。台湾生产单元专注于高精度、高效率的电力自动化产品生产,不仅提高了产品质量,还降低了生产成本。这一举措不仅增强了Floeth Electronic在全球市场的竞争力,也为其后续的发展奠定了坚实基础。

故事三:IGBT驱动器及控制器的高电压应用

在电力电子领域,IGBT(绝缘栅双极型晶体管)的应用日益广泛。Floeth Electronic凭借其深厚的技术积累,成功研发了高电压应用的IGBT驱动器及控制器,最高可达8kVAC MS。这些产品广泛应用于高压电力传输、工业电机控制等领域,以其卓越的性能和稳定性赢得了市场的广泛认可。这一技术的突破不仅提升了Floeth Electronic在电力自动化领域的地位,也为其在新能源、智能电网等新兴领域的发展提供了有力支持。

故事四:脉冲变压器的广泛应用

Floeth Electronic的脉冲变压器在雷达、变换技术等领域有着广泛的应用。这些变压器通过匹配负载电阻与馈线特性阻抗、升高或降低脉冲电压、改变脉冲极性等方式,实现了对复杂电路的高效控制。此外,脉冲变压器还广泛应用于变压器次级电路和初级电路的隔离应用,以及作为功率合成及变换元件等。这些产品的广泛应用不仅展示了Floeth Electronic在电力电子技术领域的深厚实力,也为其在更多领域的发展提供了可能。

故事五:国际合作与市场拓展

随着全球电子市场的不断融合与发展,Floeth Electronic积极寻求国际合作机会,以拓展其市场版图。公司与中国、美国等多个国家的知名企业建立了紧密的合作关系,共同研发和推广电力自动化产品。这些合作不仅为Floeth Electronic带来了先进的技术和管理经验,还帮助其更好地了解不同市场的需求和趋势。通过国际合作,Floeth Electronic不断提升其品牌影响力和市场竞争力,为全球客户提供更加优质的产品和服务。

Barnbrook Systems Limited公司的发展小趣事

为了保持技术上的领先地位,Barnbrook积极寻求与高校、研究机构的合作。通过与这些机构的深入合作,Barnbrook不仅获得了最新的科研成果和人才支持,还成功研发出了一系列具有创新性的电子产品。这些产品不仅提升了公司的技术实力,也为公司的长期发展注入了新的活力。

ETA Electric Industry Co Ltd公司的发展小趣事

在二十世纪末,ETA Electric Industry Co Ltd还只是一个小型的电子设备制造商,专注于生产简单的电子元器件。当时,公司的创始人李先生看到了电子行业快速发展的潜力,并决定投身于这一行业。最初,公司面临着资金紧张、技术落后、市场竞争加剧等诸多挑战。然而,李先生凭借其敏锐的市场洞察力和不懈的努力,逐渐打开了市场局面。他们通过与小型科技企业合作,为其提供定制化的电子元器件,逐渐在市场上站稳了脚跟。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

近年来,ETA Electric Industry Co Ltd积极响应全球环保倡议,致力于实现可持续发展。他们优化了生产流程,减少了废弃物和污染物的排放。同时,公司还加大了对环保型电子元器件的研发力度,推出了一系列节能、环保的新产品。这些举措不仅提升了公司的社会形象,也为其在激烈的市场竞争中增添了新的优势。

上述五个故事,讲述了ETA Electric Industry Co Ltd在电子行业的发展历程。从起步之初的艰难,到技术创新的突破,再到市场拓展和质量管理的成功,最后到对环保和可持续发展的追求,每一步都体现了公司的成长和进步。

Esterline Technologies Corporation公司的发展小趣事

在二十世纪末,ETA Electric Industry Co Ltd还只是一个小型的电子设备制造商,专注于生产简单的电子元器件。当时,公司的创始人李先生看到了电子行业快速发展的潜力,并决定投身于这一行业。最初,公司面临着资金紧张、技术落后、市场竞争加剧等诸多挑战。然而,李先生凭借其敏锐的市场洞察力和不懈的努力,逐渐打开了市场局面。他们通过与小型科技企业合作,为其提供定制化的电子元器件,逐渐在市场上站稳了脚跟。

DELTA公司的发展小趣事

随着人们生活水平的提高和环保意识的增强,Delta公司提出了“智能绿生活”战略,致力于为个人、家庭和企业带来更环保健康的生活型态。在这一战略指导下,Delta推出了一系列视讯显像系统、网络通信系统、LED照明、智能语音系统及云计算等产品。这些产品不仅具有高效、节能的特点,还为用户提供了更加便捷、智能的生活体验。

问答坊 | AI 解惑

8051单片机中DPTR的扩展设计

摘要 首先对比分析在执行大规模数据转移时,传统805l单片机和进行DPTR扩展后的805l单片机在数据转移执行效率上的差别。通过详细分析DPTR操作所涉及的因素,具体实现对DPTR的扩展,并进行实际仿真测试。 关键词 805l单片机DPTR 数据转移执行效率 ...…

查看全部问答>

No printer Installed Altium Designer winter09 输出PDF出错

Altium Designer 有个软件自带的功能 就是能输出原理图为PDF格式文件 具体操作是 文件--智能PDF 可是我的为什么总是在输出的时候出错呢 如下图: 提示 No printer Installed 而且生成的PDF是空白,什么都没有 请问有知道怎么解决 ...…

查看全部问答>

书籍转载--嵌入式硬件设计

书籍转载--嵌入式硬件设计 …

查看全部问答>

我的protel 生成的器件怎么都堆一起了?

各位高手: 堆在一起的器件很不好摆放,有哪位知道怎么弄啊?先谢了!…

查看全部问答>

新产品快递High-Side Current Monitors Simplify Measurement at High Voltage

Diodes’ High-Side Current Monitors Simplify Measurement at High Voltage Diodes Incorporated has introduced a family of 6 high reliability current monitors for 40V and 60V operation.  The ZXCT108X devices dete ...…

查看全部问答>

求助!U-boot内核无法读取

开发板是SEED-L138 内核也是用厂商自带的,通过tftp下载到板子,成功, 可是不能bootm ---------------------------------------------------- Hit any key to stop autoboot:  0Us ...…

查看全部问答>

常见的19种pcb线路板印刷问题

见的19种pcb线路板印刷问题  1.在印制中容易粘板,或者图像含糊不清。  2.模板上的线条图像,象蚯蚓弯曲不齐。  3.在印刷单层板时,印数低,感光胶部分脱落。  4.在印刷多层板时,印数低,网孔逐渐增多,掉胶,漏印,糊板,印不到位,最严 ...…

查看全部问答>

LED 驱动电源

   相了解LED方面知识的人,来学习下这个吧.资料蛮全面的…

查看全部问答>

创意视频分享——给世界换芯

工程设计很无趣,休息下,分享一个比较养眼的创意视频——“给世界换芯”,…

查看全部问答>

北京中科信软急招powerpc的兼职讲师

周期短,可周末,如您想挣点外块,积累资源,充实生活,请联系我,要求有实际项目经历,两年以上项目经历,表达能力较好,有意者请联系QQ:2294693830,邮件shixiuhong@info-soft.cn。 北京中科信软科技有限公司(以下简称中科信软)作为中国领先的 ...…

查看全部问答>