微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 求救各位高手:关于键盘输入和中断程序,在线等

求救各位高手:关于键盘输入和中断程序,在线等

时间:10-02 整理:3721RD 点击:
我编了一个键盘输入程序,因为里面需要检测按键是否有效,所以在延时上采用的时定时器周期中断,中断服务程序中设有变量,以检测按键状态,现在我得定时器周期中断程序和按键输入程序都编译链接好了并且建立在一个工程文件中(都是汇编的),可是我不知道怎么运行,突然特别糊涂,我怎么把中断和键盘输入程序连在一起运行呢?很着急啊,谢谢各位啦!


放在中断程序里?但是现在这个中断还用在别的地方,中断程序和键盘输入程序分别为不同的asm文件。
如果按照您的方法,是不是把键盘程序放在中断服务程序T1PINT_ISR里呢?

我得键盘输入现在只实现按一下按键,变量value就显示出来,定时器的中断是为了显示按键时候过了20ms(中断定时20ms),如果按键过了20ms,就在键盘输入程序的变量加1,一直加到3(即60ms)此时按键有效,把键值存到一个地方,但是20ms中断在很多地方都会用到,所以我现在被规定不能把键盘输入程序放在20ms中断服务ISR中,我应该怎么解决这个问题呢?谢谢!

  你为定时器设置了周期中断,或者下溢中断吧?不需要“启动中断”,时间一到就会自动发生中断了。或者说启动定时也就启动了中断度了。

我设置的是周期中断,外部中断不应该是随机的么?既然是外部中断不用外部信号,直接设置T1CON就可以,我要怎么运行它,我现在就是这点想不通,外部中断不用外部信号启动,我得程序编好了,但是我就是不知道怎么运行,
设置T1CON是不是相当于中断事件发生?
中断应答是DSP自动进行的?
如果T1CON相当于中断事件发生,是不是就直接进入了中断服务程序GISR?
怎么看中断的运行结果呢

    设的是周期中断,程序运行到执行了启动定时器指令即开始计数,等到计数值达到周期寄存器设定值时,产生一个周期中断。

   会用DEBUG了吧,把断点设置在中断服务例程中,如果程序停到这个断点,就是发生了这类中断了。

死机了,不好意思啊
中断不是随机的么?如果提前设置了,不就是按照程序运行了么?
我想的是,设置(如果是TI,就设置T1CON,T1PR,T1CNT)好,然后有一个触发信号,然后跳入GISR,同过GISR的跳转,跳到中断服务程序ISR进行中断服务
这个触发信号应该是随即的,但是我现在不知道这个触发信号是什么啊?如果是外部给的,从那里给呢?如果是软件设置的,不就是软件控制的了么?那还是随机的么?

     定时器的中断不是随机的,是定时发生的。只有“外部”中断,如按键,串口通讯线上上的输入等才是随机的。由定时器中断启动的操作,是定时执行的程序段。

谢谢你,那么别的外部中断就需要有一个触发信号是么?
周期中断如果是定时器应该相当于总在计时,那是不是表示它总处在中断?但是现在在我的工程文件里有两个文件,一个是中断,一个是主程序,两个能一起运行么?,这问题怎么解决呢?

周期中断总在定时发生。中断服务里要把已处理的中断清除。所谓中断者也,就是打断主程序的执行,插进去先执行一段特殊的服务,等执行完了,再“恢复现场”,继续执行被打断的主程序。
两个,或更多个源程序文件,经BUILDER以后,不是连接在一起,生成一个运行文件了吗?

是生成了一个文件但是根本不能运行的,我也不知道问题处在哪里,系统初始化以后,就跑飞,中断根本进不去,而且我得程序load完以后,把中断程序,放在了前面,键盘主程序根本运行不到,

    程序是从 verctor.asm  中的复位向量开始执行的,与放在前放在后没有关系。按常理,总是在主程序中调用初始化程序,为外设(如定时器)编程,启动吧。如果主程序运行不到,外设不会工作,也不会有中断。

我把我得小程序传给你,你帮我看一看好不好?你看比我跟你说好,毕竟我得水平是在有限,可能说都说不对

上一篇:T1CON
下一篇:进不了中断

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top