打印

新手请教PSOC 定时器问题

[复制链接]
1246|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cuitjxg|  楼主 | 2014-5-13 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想用CY8C24533 的定时器中断中进行四位数码管的扫描,数码管电路没有为题,但不知道定时器哪里设置不对,还是程序有问题,不能进入定时器中断。请高手指教下,感谢!
代码如下:
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
unsigned char LED_COUNT=0;
//                           0,   1,   2    3    4     5   6    7     8   9     P    A    D    C    T    b   u    -    H    L     n    h  _     u    o    e   E
const Led_Table[]={0xC0,0xF9,0XA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0x88,0xA1,0xC6,0x87,0x83,0xC1,0xBF,0x89,0xC7,0xC8,0x8B,0xF7,0xE3,0xA3,0x84,0x86,0xA7};
void Delay(unsigned int i)
{
  while (i--);       
}

void LED_SHOW()
{
  PRT1DR=0xFF;
  PRT0DR=0x00;       
  if (LED_COUNT==0)
   {
          
         PRT0DR=0x01;
   }
  if(LED_COUNT==1)
  {
         
        PRT0DR=0x04;
  }
  if (LED_COUNT==2)
  {
         
        PRT0DR=0x10;
  }
  if (LED_COUNT==3)
  {
       
        PRT0DR=0x40;
  }       
  PRT1DR=Led_Table[LED_COUNT];
  LED_COUNT++;
  if (LED_COUNT==4) LED_COUNT=0;
}


#pragma interrupt_handler Timer8_1_ISR
void Timer8_1_ISR(void)
{
        LED_SHOW();
}       

void main(void)
{
        // M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts
        // Insert your main routine code here.
        M8C_EnableGInt;
        PRT1DR=0xC0;
        //Timer8_1_WritePeriod(31);
        Timer8_1_EnableInt();//启用中断模式运行。但是,要注意到,在中断运行前,必须还启用全局中断。
        while (1)
        {
                //LED_SHOW();
                Delay(500);
               
        }
}
另上传源程序压缩包
沙发
cuitjxg|  楼主 | 2014-5-13 10:48 | 只看该作者
工程源代码!

PDProject1.rar

150.71 KB

使用特权

评论回复
板凳
cuitjxg|  楼主 | 2014-5-13 13:33 | 只看该作者
问题解决,少了启动定时器的语句!

使用特权

评论回复
地板
kk5290122| | 2014-5-13 21:14 | 只看该作者
这些比较低级的错误用心点就可以避免了。:victory:

使用特权

评论回复
5
cuitjxg|  楼主 | 2014-5-15 10:34 | 只看该作者
主要是新手,才弄两天

使用特权

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

本版积分规则

12

主题

59

帖子

0

粉丝