打印

cy8c29866程序进不了I/O中断

[复制链接]
7090|61
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hulan1985|  楼主 | 2009-12-12 21:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的cy8c29866程序进不了I/O中断,但是能够进入UART中断,怎么回事啊?
沙发
hulan1985|  楼主 | 2009-12-12 21:39 | 只看该作者
大家碰到的都有哪些情况呢?我是菜鸟,不知怎么办了

使用特权

评论回复
板凳
juventus9554| | 2009-12-12 21:46 | 只看该作者
情况很多,详细说说你的问题

使用特权

评论回复
地板
god_like| | 2009-12-12 23:15 | 只看该作者
是啊,说的详细一点,或者把程序贴上来

使用特权

评论回复
5
love_life| | 2009-12-12 23:37 | 只看该作者
帮顶

使用特权

评论回复
6
jxin| | 2009-12-13 08:50 | 只看该作者
进不了I/O中断就是I/O中断没配置好吧

使用特权

评论回复
7
juventus9554| | 2009-12-13 20:04 | 只看该作者
楼主这也没个后文了……

使用特权

评论回复
8
hulan1985|  楼主 | 2009-12-13 20:05 | 只看该作者
==,我贴个程序

使用特权

评论回复
9
hulan1985|  楼主 | 2009-12-13 20:10 | 只看该作者
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#pragma interrupt_handler UART_TX_ISR
#pragma interrupt_handler UART_RX_ISR
#pragma interrupt_handler PSoC_GPIO_ISR
#define Port6 PRT6DR                 
#define over  (PRT0DR&0x04)>>2        
#define EN_1  PRT0DR=PRT0DR|0x50      
#define EN_0  PRT0DR=PRT0DR&0xaf      
#define CLK_0 PRT2DR=PRT2DR&0xfa     
#define CLK_1 PRT2DR=PRT2DR|0x05      
#define WR_W  PRT2DR=PRT2DR|0x50      
#define WR_R  PRT2DR=PRT2DR&0xaf     
unsigned char cmd=0;
unsigned char flag_wr=0;
unsigned char start=0;
unsigned char  databuffer[160];
unsigned char row_finish=0;
unsigned char counter_collum=0;
unsigned char counter_row=0;
void UART_TX_ISR(void)
{
   UART_1_PutChar(over);
}
void UART_RX_ISR(void)
{
  cmd=UART_1_cGetChar( );
  if (cmd==0xe2)UART_1_PutChar(over);
}
void PSoC_GPIO_ISR(void)
{EN_1;CLK_0;WR_W;
}
void main()
{   
      UART_1_CmdReset();                    
     UART_1_IntCntl(UART_1_ENABLE_RX_INT|UART_1_ENABLE_TX_INT);
// Enable RX&TX interrupts     
     UART_1_Start(0x00);         // Enable UART  
   
    M8C_EnableIntMask(INT_MSK0,INT_MSK0_GPIO);
   //以下四条注释掉的语句为自己的I/O中断的配置,不能够进入中断,后来换 // 为了M8C_EnableIntMask(INT_MSK0,INT_MSK0_GPIO)但是仍然不行
   // PRT0IC0=0X00;//P102 int mode
   // PRT0IC1=0X04;
   // PRT0IE=0X04;//INT ENABLE P142
   // INT_MSK0=0X20;//MASK
    M8C_EnableGInt ;                     
// Turn on interrupts         
cmd=0xe2;
     while(1);

}

使用特权

评论回复
10
贾君鹏子| | 2009-12-13 20:15 | 只看该作者
连一分都不给

使用特权

评论回复
11
午夜粪车| | 2009-12-13 20:21 | 只看该作者
你是为了得分啊~~~

使用特权

评论回复
12
lobby| | 2009-12-13 21:07 | 只看该作者
进不了I/O中断就是I/O中断没配置好吧
jxin 发表于 2009-12-13 08:50

我觉得6楼说的挺对的

使用特权

评论回复
13
jxin| | 2009-12-15 12:11 | 只看该作者
你uart, gpio初始化程序里定义中断跳转了么?

使用特权

评论回复
14
五谷道场| | 2009-12-17 20:45 | 只看该作者
在初始化时加INT_MSK0&=~INT_MSK0_GPIO

使用特权

评论回复
15
hulan1985|  楼主 | 2009-12-17 20:50 | 只看该作者
我的中断程序就是置标识,我程序里面已经给了

使用特权

评论回复
16
juventus9554| | 2009-12-17 20:56 | 只看该作者
是,
#pragma interrupt_handler PSoC_GPIO_ISR
void PSoC_GPIO_ISR(void)
{EN_1;CLK_0;WR_W;
}
对吧

使用特权

评论回复
17
午夜粪车| | 2009-12-17 21:10 | 只看该作者
把boot.asm中改成APSoC_GPIO_ISR
程序中也改成同样APSoC_GPIO_ISR,再加上初始化INT_MSK0&=~INT_MSK0_GPIO

使用特权

评论回复
18
午夜粪车| | 2009-12-17 21:11 | 只看该作者
我可不是为了得分

使用特权

评论回复
19
贾君鹏子| | 2009-12-17 21:14 | 只看该作者
你是说我吗?

使用特权

评论回复
20
liliang9554| | 2009-12-17 21:15 | 只看该作者
你是说我吗?
贾君鹏子 发表于 2009-12-17 21:14

不要吵了,解决问题不就行了嘛

使用特权

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

本版积分规则

61

主题

1059

帖子

0

粉丝