完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我试着用计时器。
我在柏树看到了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 #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个回答
|
|
毗湿奴
用主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 |
|
|
|
你的主要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 |
|
|
|
|
|
|
|
|
|
|
|
先生我想附加的文件,但我得到的例外。
是否有任何替代方案将文件发送到U? 感谢和问候 毗湿奴 以上来自于百度翻译 以下为原文 sir i am trying to attach the file but i am getting exception. is there any alternate solution to send the file to u Thanks & Regards vishnu |
|
|
|
|
|
|
|
项目中需要进行以下更改。1。在项目中,此参数设置为UseSysClkDirect。这将覆盖VC3时钟设置,时钟设置为24MHz。因此,从中断定时器将太快,你会看到LED一直是。将此参数设置为“SycToSysCLK”2。我猜你是想得到2Hz中断与定时器。为此,将VC3源设置为VC2。三。我不明白你在主要的逻辑。C使用count变量。如果你设置了VC3源VC2和设置SYSCLK参数正确,定时器产生中断每500ms。所以,你可以有“prt2dr ^ = 0x80”指令在ISR四。你不应该添加一个下划线函数名之前,写作时在C.当一个C函数调用的组件,一个强调必须在装配函数调用增加。
在装置编辑作出上述修改和更换主。C代码与下面的代码,你应该在1Hz到ledblinking(我已经测试了这个) #语用interrupt_handler timer8_1_isr void main(void){ m8c_enablegint;timer8_1_enableint();timer8_1_start();而(一){ } }无效timer8_1_isr(void){ prt2dr ^ = 0x80;} 最好的问候,甘尼什 以上来自于百度翻译 以下为原文 Following changes are required in your project. 1. In your project, this parameter is set to UseSysClkDirect. This will override the VC3 Clock setting and set the clock to 24MHz. Due to this, the interrupt from the timer will be too fast and you will see the LED to be always On. Set this parameter to "SyncToSysClk" 2. I guess you are trying to get a 2Hz interrupt from the Timer. For this, set the VC3 source to VC2. 3. I dont understand the logic you have used in main.c using the count variable. If you set the VC3 source to VC2 and set the SysClk parameter right, the Timer will generate an interrupt every 500mS. So, you can have the "PRT2DR ^= 0x80" instruction inside the ISR 4. You should not add an underscore before the function name when writing it in C. When a C function is called from assembly, an underscore has to be added in the assembly function call. Make the above corrections in device editor and replace main.c code with below code and you should see the LED blinking at 1Hz (I have tested this) #pragma interrupt_handler Timer8_1_ISR void main(void) { M8C_EnableGInt; Timer8_1_EnableInt(); Timer8_1_Start(); while(1) { } } void Timer8_1_ISR(void) { PRT2DR ^= 0x80; } Best Regards, Ganesh |
|
|
|
非常感谢你,先生。我得到了结果。
感谢和问候 毗湿奴 以上来自于百度翻译 以下为原文 Thank u so much sir. i got the result. Thanks & Regards Vishnu |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2081 浏览 1 评论
1833 浏览 1 评论
3648 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1773 浏览 6 评论
1520 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
528浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
383浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
420浏览 2评论
366浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
877浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 14:35 , Processed in 1.147113 second(s), Total 63, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号