Cypress技术论坛
直播中

张帆

7年用户 224经验值
私信 关注
[问答]

Timer8程序不能得到输出

嗨,我试着用计时器。
我在柏树看到了1个例子。我已经使用了代码,但是我不能得到输出。LED持续发光。
请帮帮我。
这是密码
/----------------------------------------
//包含文件
/----------------------------------------
包括:
M8C.H>/部分特定常数和宏
包括:
/----------------------------------------
/c中断处理程序
/----------------------------------------
所有用户模块的“PSoAPI API”//PSoC API定义
中断处理程序
//函数名称:主
/ /
/描述:
//主要功能。执行系统初始化并无限循环。
/ /
/------------------------------------------
/ /
//参数:无
//返回:无。
/副作用:无。
/ /
/操作理论或程序:
// 1)启动用户模块
/ / 2无限循环
/ /
/------------------------------------------
/ /
无效
{
主/()/ /允许全局中断M8cEnababcIt;
//启用定时器中断并启动UM time8Y11EnabeLeTin();
Time8Y11StIX();
//无限循环。仅在TimeR.ISR上进行处理。
}
而(1);//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//函数名称:Time8Y11IISRYC
/ /
/描述:
/C编写的Time8Y1用户模块中断服务程序。
//Time8Y1It.ASM文件中的yTime8Y11ISR子程序;
//将流程重定向到这个子例程。
/------------------------------------------
/ /
//参数:无
//返回:无。
/副作用:无。
/ /
/操作理论或程序:
//终端计数中断发生在0.5秒的间隔。
/PIN P2(0)的状态被确定并颠倒。
/ /
/ /
无效
{
Time8Y11IsRyC.()//读取PoT2和XOR,用0x01将状态从ON更改为OFF,反之亦然。PRT2DR ^=0x01;
}

以上来自于百度翻译


     以下为原文
  hi i am trying to use timers .
    i have seen 1 example project in cypress. i've used that code, but i am unable to get the output. LED is continuously glowing.
    please help me.
    here is the code
     
   
    //-------------------------------------------------------------------
    // Include Files
//-------------------------------------------------------------------
    #include
     
    // part specific constants and macros
    #include
    //-------------------------------------------------------------------
// C Interrupt Handlers
//-------------------------------------------------------------------
        "PSoCAPI.h"        // PSoC API definitions for all User Modules    #pragma
    interrupt_handler Timer8_1_ISR_C    //-----------------------------------------------------------------------------
// FUNCTION NAME: Main
//
// DESCRIPTION:
// Main function. Performs system initialization and loops infinitely.
//
//-----------------------------------------------------------------------------
//
// ARGUMENTS: None
// RETURNS: None.
// SIDE EFFECTS: None.
//
// THEORY of OPERATION or PROCEDURE:
// 1) Start the user modules
// 2) Loop Infinitely
//
//-----------------------------------------------------------------------------
//
    void
{
  
    mainc()    //Enable the Global Interrupt    M8C_EnableGInt;
  
  
    //Enable the Timer interrupt and Start the UM    Timer8_1_EnableInt();
Timer8_1_Start();
  
    //infinte loop. Processing done only at Timer_ISR.      
}
    while    (1);    //-----------------------------------------------------------------------------
// FUNCTION NAME: Timer8_1_ISR_C
//
// DESCRIPTION:
// Interrupt Service routine of Timer8_1 usermodule written in C.
// The _Timer8_1_ISR subroutine In the Timer8_1INT.asm file,
// redirects the flow to this subroutine.
//-----------------------------------------------------------------------------
//
// ARGUMENTS: None
// RETURNS: None.
// SIDE EFFECTS: None.
//
// THEORY of OPERATION or PROCEDURE:
// A Terminal Count interrupt occurs at an interval of 0.5 secs.
// The state of pin P2[0] is determined and reversed.
//
//
    void
{
  
    Timer8_1_ISR_C()    //Read Port2 and XOR it with 0x01 to change the status from On to Off and vice-versa.    PRT2DR ^= 0x01;
}

回帖(9)

周敏

2019-3-6 07:49:24
毗湿奴
用主C代码很难找出问题所在。你能把完整的项目文件夹压缩并附加在这里吗?
最好的问候,
加内什

以上来自于百度翻译


     以下为原文
  Vishnu,
    It is difficult to find out the problem only with the main.c code.  Can you zip the complete project folder and attach it here?
    Best Regards,
    Ganesh
举报

周敏

2019-3-6 08:08:46
你的主要C代码也有一些问题。
您已将Time8Y11ISRYC声明为中断处理程序。但是你没有正确地定义函数。这是书写函数的正确方法。
空时间881a iSrC(空隙)
{
PRT2DR ^=0x01;
}
在timer8的isrfile,你应该有下面的代码在用户代码标记区。
LJMP

以上来自于百度翻译


     以下为原文
  Your main.c code also has some problem.
     
    You have declared TIMER8_1_ISR_C as an interrupt handler.  But you have not defined the function correctly.  This is the correct way of writing the function.
    void TIMER8_1_ISR_C(void)

    {

    PRT2DR ^= 0x01;

    }

    In the Timer8's ISR file, you should have the below code in the user code marker area.
    ljmp _TIMER8_1_ISR_C
举报

张帆

2019-3-6 08:19:05
先生,我正在整理完整的ZIP文件。

以上来自于百度翻译


     以下为原文
  sir i am attaching the complete zip file.
举报

张帆

2019-3-6 08:24:54
先生,我把文件附在这里。

以上来自于百度翻译


     以下为原文
  sir I am attached the file here
举报

更多回帖

发帖
×
20
完善资料,
赚取积分