OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4483|回复: 8

STC15定时器的问题,求助

[复制链接]

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
发表于 2016-12-1 14:32:29 | 显示全部楼层 |阅读模式
1金钱
#define MAIN_Fosc                11059200L        //定义主时钟
#include        "15W4KxxS4.H"

#define  uint unsigned int  
#define  uchar unsigned char  

#define T1MS (65536-MAIN_Fosc/1000)

/********************************************
引脚别名定义
*********************************************/
sbit LED_R=P0^6;                 //三色指示灯之红色LED用IO口P06       

uchar cnt = 0;

void Timer0Init(void)
{
        AUXR = 0x80;                    //定时器0为1T模式
        TMOD &= 0xF8;                   //定时器0为16位自动重装模式
        TMOD |= 0x08;                   //定时器0为16位自动重装模式
        TL0 = T1MS;            
        TH0 = T1MS >> 8;
        TR0 = 1;                        //定时器开始计时
        ET0 = 1;                        //使能定时器0中断
}

void timer0_int (void) interrupt 1
{
        cnt++;

        if(cnt ==1000)                                       //定时的是1ms进一次中断,但是为什么我这里写1000灯就不亮了??????????                        
        {
    LED_R = ~LED_R;      //点亮红色指示灯
                cnt = 0;
        }       
}

//主函数
int main()
{
/////////////////////////////////////////////////
//注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为
//      高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用
//相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
//        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
        P0M1 = 0;        P0M0 = 0;        //设置P0.0~P0.7为准双向口
        P1M1 = 0;        P1M0 = 0;        //设置P1.0~P1.7为准双向口
        P2M0 = 0;        P2M1 = 0;        //设置P2.0~P2.7为准双向口
        P3M1 = 0;        P3M0 = 0;        //设置P3.0~P3.7为准双向口
        P4M1 = 0;        P4M0 = 0;        //设置P4.0~P4.7为准双向口
        P5M1 = 0;        P5M0 = 0;        //设置P5.0~P5.7为准双向口
       
        Timer0Init();
        EA = 1;          //使能总中断
  while(1);
}


最佳答案

查看完整内容[请看2#楼]

char cnt; 这个 char是8位 就是说最大是256 而你的是cnt是1000, 就是说cnt加不到1000.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
266
金钱
266
注册时间
2015-8-14
在线时间
92 小时
发表于 2016-12-1 14:32:30 | 显示全部楼层
char   cnt;   这个  char是8位   就是说最大是256    而你的是cnt是1000,   就是说cnt加不到1000.     
回复

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
 楼主| 发表于 2016-12-1 15:12:41 | 显示全部楼层
cnt 数据类型是 uchar......
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-8
在线时间
7 小时
发表于 2016-12-13 16:44:50 | 显示全部楼层
定时器和串口通信你搞懂了吗
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-11-25
在线时间
24 小时
发表于 2016-12-14 17:18:06 来自手机 | 显示全部楼层
uint cnt
回复

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
 楼主| 发表于 2017-1-16 08:57:21 | 显示全部楼层
tismily 发表于 2016-12-1 14:32
char   cnt;   这个  char是8位   就是说最大是256    而你的是cnt是1000,   就是说cnt加不到1000.

三克油
回复

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
 楼主| 发表于 2017-1-16 08:57:33 | 显示全部楼层
donkey 发表于 2016-12-1 15:12
cnt 数据类型是 uchar......

三克油
回复

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
 楼主| 发表于 2017-1-16 08:57:45 | 显示全部楼层
Linuxjava 发表于 2016-12-13 16:44
定时器和串口通信你搞懂了吗

已解决,谢谢
回复

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-12-1
在线时间
22 小时
 楼主| 发表于 2017-1-16 08:57:57 | 显示全部楼层

嗯嗯,三克油
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-27 13:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表