历史上的今天
返回首页

历史上的今天

今天是:2024年11月06日(星期三)

正在发生

2019年11月06日 | S3C2440开发板利用外部中断实现按钮切换不同功能

2019-11-06 来源:51hei


#include "def.h"

#include "option.h"

#include "2440addr.h"

#include "mmu.h" 

#include "stdio.h"


/*中断处理函数按下不同按钮进入该中断处理,并根据按下的不同按钮启动不同功能,实现功能控制面板的按钮功能*/

void __irq Eint_Isr(void)

{

  switch(rEINTPEND)

  {

    case 1<<13:  //功能1启动,同时关闭功能2

         rGPBDAT=0<<6|1<<7;

         rEINTPEND=1<<13;  //等待下一个自己的中断进入

         break;

    case 1<<14:  //功能2启动,同时关闭功能1

         rGPBDAT=1<<6|0<<7;

         rEINTPEND=1<<14;  //等待下一个自己的中断进入

         break;

    case 1<<8:  //关闭功能1和2

         rGPBDAT=1<<6|1<<7;

         rEINTPEND=1<<8;  //等待下一个自己的中断进入

         break;

    default:

         rGPBDAT=1<<6|1<<7;

         break;

  }

  ClearPending(BIT_EINT8_23);  //等待下一个该中断向量内的任意中断到来

}


/*设置启动后的默认功能*/

void Led_on()

{

     // 设置LED灯

   rGPBCON=0x155555;  //设置GPB为输出 

   rGPBDAT=(0x1<<6)|(0x1<<7);   //GPB7脚置位,led灭

}



/*设置按钮出发方式*/

void Eint_func()

{

   // 按键中断源设置

   rGPGCON=(rGPGCON&~((0x3<<0)|(0x3<<10)|(0x3<<12)))|(0x1<<1)|(0x1<<11)|(0x1<<13); //设置GPG0、5、6脚为EINT8、13、14

   rGPGUP|=(0x1<<0)|(0x1<<5)|(0x1<<6);   //引脚使用第二功能

   rEXTINT1=rEXTINT1&~(0x7<<0);//|(0x1<<2);    //按钮1设置为低电平沿触发

   rEXTINT1=rEXTINT1&~(0x7<<20);//|(0x1<<22);  //按钮2设置为低电平沿触发

   rEXTINT1=rEXTINT1&~(0x7<<24);//|(0x1<<26);  //按钮3设置为低电平沿触发

}

                             

/*中断初始化*/

void Eint_init()

{

   rEINTMASK=rEINTMASK&~((0x1<<8)|(0x1<<13)|(0x1<<14));  // 使能外部中断屏蔽,为0时不屏蔽中断

   /*设置中断控制器*/

   rINTMOD&=~BIT_EINT8_23;  //设置中断模式为IRQ

   rINTMSK&=~BIT_EINT8_23;  //启动中断使能

}



/*中断挂起,等中断*/

void Eint_wait()

{

   rSRCPND=rSRCPND; //中断挂起寄存器清除

   rINTPND=rINTPND; //中断源挂起寄存器清除

   rEINTPEND|=(0x1<<8)|(0x1<<13)|(0x1<<14); //外部中断挂起寄存器,Eint13挂起等待中断

   rSRCPND=BIT_EINT8_23; //中断源挂起寄存器相应位置1等待中断

   rINTPND=BIT_EINT8_23; //中断挂起寄存器相应位置1等待中断

}



/*设置中断指针*/

void Eint_p()

{

   pISR_EINT8_23 =(U32)Eint_Isr;  //设置中断为Eint11响应

}



/*主程序开始*/

void Main()

{

//   isr_asm();  //使能CPSR寄存器的I位

   Led_on();  //启动时将led熄灭

   Eint_init(); //中断初始化

   Eint_func();  //中断触发状态初始化

   Eint_wait();  //等待中断

   Eint_p();    //中断指针

}


推荐阅读

史海拾趣

Hartmann Codier GmbH公司的发展小趣事

对于固态非易失性精密电位器构成的温度测量电路,网友可能关心的问题及其回答如下:

  1. 固态非易失性精密电位器的工作原理是什么?
    • 回答:固态非易失性精密电位器(如X9C102/103/104/503系列)包含有99个电阻单元的电阻阵列。滑动单元的位置由CS、U/D和INC三个输入端控制。滑动端的位置可以被存储在一个非易失性存储器中,因此在下一次上电工作时可以被重新调用。
  2. 这个电位器在温度测量中是如何应用的?
    • 回答:非易失性数控电位器在温度测量中的应用主要是通过其构成的记数式模数转换电路来实现的。这种电路能够将温度信号转换为数字信号,进而进行温度的测量和记录。
  3. 固态非易失性精密电位器的分辨率是多少?
    • 回答:分辨率取决于具体的电位器型号。例如,X9C503(50k Ω)的每个抽头间的阻值为505 Ω,这意味着其分辨率等于最大的电阻值被99除。
  4. 这个电位器的工作电压范围是多少?
    • 回答:工作电压范围通常为VCC=3V至5.5V。
  5. 固态非易失性精密电位器能否在长时间内保存数据?
    • 回答:是的,所有的Xicor非易失性存储器都设计成并经过测试能够用于持久地保存数据的应用场合。滑动端位置数据可保存100年。
  6. 这个电位器在温度测量中有什么特点或优势?
    • 回答:其特点包括低功耗、高分辨率、非易失性存储、长时间数据保存等。这些特点使得它在温度测量中具有高精度、高可靠性和长寿命的优势。
  7. 如何选择合适的固态非易失性精密电位器进行温度测量?
    • 回答:在选择电位器时,需要考虑其工作电压、电阻范围、分辨率、功耗以及数据保存能力等参数。同时,还需考虑电路设计的具体需求和限制条件。

以上回答基于参考文章中的相关信息进行整理和总结,旨在解答网友可能关心的问题。

冠图电子(GTL-POWER)公司的发展小趣事

冠图电子(GTL-POWER)发展故事之一:初创与技术积累

冠图电子(GTL-POWER)的故事始于2009年,当时它作为一家专注于中小功率模块电源、定制电源的新兴企业在广州成立。创始人凭借对电力电子技术的深刻理解和敏锐的市场洞察力,组建了一支专业的研发团队,致力于高品质模块电源的研发与生产。在公司成立初期,团队就明确了技术创新和质量为先的发展策略,逐步建立了微功率模块电源样品生产线,为后续的发展奠定了坚实基础。

冠图电子(GTL-POWER)发展故事之二:市场拓展与战略布局

随着技术实力的不断增强,冠图电子开始积极拓展市场。2010年至2012年间,公司先后在北京、上海、深圳等城市设立了办事处,构建了遍布全国的销售网络。这一战略布局不仅拓宽了销售渠道,还加强了与当地客户的紧密联系,进一步提升了品牌知名度。同时,公司还根据市场需求,不断优化产品结构,推出了多款具备自主知识产权的特色产品,如宽压DC-DC模块电源、光伏电源等,深受市场欢迎。

冠图电子(GTL-POWER)发展故事之三:技术突破与行业标准

冠图电子在技术创新方面不断取得突破,陆续开发了多款具有行业领先水平的电源产品。例如,公司成功开发出小型全功能单列直插DC-DC模块电源,解决了传统电源体积大、效率低的问题。此外,冠图电子还积极参与行业标准的制定工作,通过技术创新推动整个电源行业的发展。这些努力不仅提升了公司的行业地位,还为客户提供了更加可靠、高效的电源解决方案。

冠图电子(GTL-POWER)发展故事之四:品质管理与国际认证

为了确保产品质量,冠图电子建立了严格的质量管理体系,并通过了ISO9001权威认证。公司注重生产过程的每一个环节,从原材料采购到成品出厂都实行严格的质量控制。这种对品质的执着追求使得冠图电子的产品在市场上赢得了良好的口碑,吸引了来自全球30多个国家的600多家客户。国际市场的认可不仅提升了公司的品牌形象,还为公司带来了更多的业务机会。

冠图电子(GTL-POWER)发展故事之五:客户服务与持续发展

冠图电子始终坚持以客户为中心的服务理念,为客户提供从项目咨询、系统设计到技术支持的一站式服务。公司拥有一支专业的客服团队,能够迅速响应客户需求并提供专业的解决方案。此外,冠图电子还注重与客户的长期合作,通过持续改进产品和服务来满足客户的不断变化的需求。这种以客户为导向的发展策略使得冠图电子在激烈的市场竞争中保持了稳步发展,并逐渐成长为一流的微功率模块电源、定制电源供应商。

中科银河芯(GXCAS)公司的发展小趣事
三极管在饱和状态下的集电极-发射极压降(Vce)会影响输出信号的低电平值。
Dialog公司的发展小趣事

近年来,Dialog公司通过一系列收购活动实现了快速扩张。例如,Dialog公司收购了Adesto公司,进一步拓展了工业物联网市场。这次收购为Dialog公司带来了一系列新的智能楼宇自动化工业解决方案,为其现有的制造自动化产品提供了非常好的补充。此外,收购Adesto还为Dialog公司带来了近5,000家客户公司,这些公司中大部分对Dialog公司来说是新客户。

Dialog Semiconductor(戴乐格半导体)公司的发展小趣事

Dialog Semiconductor自2000年成立以来,就致力于技术创新。公司在早期阶段就专注于电源管理技术的研发,推出了多款高效能、低功耗的电源管理芯片,这些芯片被广泛应用于智能手机、可穿戴设备等移动设备中。随着物联网(IoT)的兴起,Dialog Semiconductor进一步拓展了产品线,增加了蓝牙和射频(RF)芯片等连接性解决方案,以满足市场对低功耗无线通信的需求。这些技术创新使Dialog Semiconductor在电子行业中建立了稳固的地位。

ACCRETECH公司的发展小趣事

随着物联网市场的快速发展,Dialog Semiconductor积极布局物联网领域。公司推出了一系列物联网相关的产品和解决方案,包括蓝牙和Wi-Fi芯片、传感器等。这些产品和解决方案能够满足物联网设备对低功耗、高可靠性通信的需求,为物联网市场的发展提供了有力支持。Dialog Semiconductor的前瞻性布局使其在物联网市场中占据了重要位置。

问答坊 | AI 解惑

第二届(1995年)全国大学生电子设计竞赛题目

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 …

查看全部问答>

数字信号处理!

数字信号处理各位大侠!我有一个问题想请教! 我们单位领导想把车间诸多的设备运行状况(包括正常、事故、停车)信号都能集中显示。每台设备的运行状况由操作员发出。现在的问题是如果有100~200个指令,我如何把这些指令通过处理,以以太网接口的 ...…

查看全部问答>

【verilog语法分析】强制激励

  在一个过程块中,可以用两种不同的方式对信号变量或表达式进行连续赋值。 §   过程连续赋值往往是不可以综合的,通常用在测试模块中。 §    两种方式都有各自配套的命令来停止赋值过程。 §   ...…

查看全部问答>

Paul, Chao @ Techware 请进

您老就不用嗐起哄了, 我已没那个热情了, 倒是 LZ 您整理了很多 Blog, 嘉惠後进, 非常适合来做斑竹. USB 来做 KITL 有 2 种做法, 1 种是走 Serial KITL, 另 1 种是走 ethernet RNDIS. 25 楼所言的 source code 是走 ethernet, 而 Samsung 一般而言 ...…

查看全部问答>

三种抖动分解方法

三种抖动分解方法…

查看全部问答>

自己动手创建一个基于万利STM32板的IAR工程

    圈圈前面几个STM32的程序是直接拿例子来改的,但我们总不能每次都拿别人的例子来改吧?我们要学会如何自己来创建一个属于自己的IAR工程。    首先启动IAR开发环境。如果你的设置是在启动时出现Em ...…

查看全部问答>

简单的数值比较,谁能告诉我这是为什么

谁能告诉我这是为什么?明明“chipNumb”值是0x02,而且CHIP_NUMB是常量0x02,还返回FALSE? 1.JPG (6.25 KB) 下载次数:3 2010-8-19 15:32 2.JPG (39.49 KB) ...…

查看全部问答>

新世纪LED网论坛申请友情链接

新世纪LED网论坛申请友情链接   您好:新世纪LED网论坛是LED技术论坛,主要为LED工程师提供技术交流平台。现申请与贵站友情链接,请通过并期待您的回复,谢谢。   新世纪LED网论坛:http://bbs.ledth.com/   联系QQ:82510352 ...…

查看全部问答>