打印

IO 引脚中断

[复制链接]
2458|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caojun105|  楼主 | 2010-4-24 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是个老问题了,仔细看了版上的帖子依然无法解决。
项目非常简单,用一个按键当开关,按一下,灯的状态就改变
  p1.0作为按键输入 配置为 drive:High    Z 上升沿触发   
p1.1接LED灯

程序为
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#include "ports.h"
#pragma interrupt_handler APSoC_GPIO_ISR;
int i=0;
void main()
{
M8C_EnableGInt;
INT_MSK0|=INT_MSK0_GPIO;//版上说这个是开GPIO中断的,具体的不是很清楚
LED_1_Switch(1);

}
void APSoC_GPIO_ISR()
{  i++;
   LED_1_Invert();
   }

然后boot.asm文件改成

    org   1Ch                      ;GPIO Interrupt Vector
    ljmp _APSoC_GPIO_ISR
    reti

开始我是
  org   1Ch                      ;GPIO Interrupt Vector
    ljmp PSoC_GPIO_ISR
    reti
然后再在
PSoC_GPIO_ISR:

reti
中加入中断服务程序** 这样不行,后来参考以前版上高手的方法改成直接在boot.asm中跳转。可是依然无法解决;

急需各位解答。
沙发
yulindee| | 2010-4-24 20:38 | 只看该作者
tpl的那个文件改了没

使用特权

评论回复
板凳
chuxh| | 2010-4-24 21:27 | 只看该作者
看不懂……

使用特权

评论回复
地板
fox411| | 2010-4-25 17:17 | 只看该作者
首先第一点,这样改boot.asm,如果工程重新生成(generate),那么boot.asm会被默认的覆盖,之前的修改就没了。
建议做法
1)在chip editor里点击P1.0 pin脚,在配置窗口里选择interrupt为enable,这样boot.asm里会天价GPIO的ISR程序
org   1Ch                      ;GPIO Interrupt Vector
    ljmp _GPIO_ISR
    reti
2) 然后main.c文件如下
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#include "ports.h"
#pragma interrupt_handler APSoC_GPIO_ISR;
int i=0;
void main()
{
M8C_EnableGInt;
INT_MSK0|=INT_MSK0_GPIO; //打开中断控制器中GPIO中断的屏蔽位
LED_1_Switch(1);

}

// 注意这里一定要与boot.asm中的函数名一致,去掉那个最开始的下划线
#pragma interrupt_handler GPIO_ISR  
void GPIO_ISR()
{  i++;
   LED_1_Invert();
   }

现在再来试试看吧

使用特权

评论回复
5
god_like| | 2010-4-25 21:03 | 只看该作者
楼上的厉害~~~

使用特权

评论回复
6
happytiger2010| | 2010-4-25 21:49 | 只看该作者
进来学习~~~

使用特权

评论回复
7
ldz5584| | 2010-8-27 17:00 | 只看该作者
你非要用终端吗?
你可以这样。将你P10的IO管脚设为IN,然后,用PRT1DR & 0x01来判别来的更快,更直接。

使用特权

评论回复
8
dqyubsh| | 2010-9-11 04:32 | 只看该作者
不懂POSC。按常理,按键管脚要设置为输入,如果设为三态高阻High Z的话,它的输入一定是高的,自然不会有中断产生。

使用特权

评论回复
9
benedy| | 2010-9-11 14:21 | 只看该作者
对PSOC了解的不多,程序里面好像没有进行引脚的配置啊,难道PSOC不用在程序里面设置吗?

使用特权

评论回复
10
yiwang0901| | 2010-9-11 15:02 | 只看该作者
资料不全,要靠自己找啊,

使用特权

评论回复
11
jjl3| | 2010-11-18 23:24 | 只看该作者

使用特权

评论回复
12
zdh0204lj| | 2010-11-28 15:01 | 只看该作者
学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

11

帖子

1

粉丝