5208|21

16

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

PIC定时求助 [复制链接]

 
#include

#define uchar unsigned char
#define uint  unsigned int
void initial();   
void ccp1_pwm();
void interrupt power(void);
unsigned long int intnum;
uint pwm_duty;
uint i;
main()  
{
  initial();
while(1)

{


if(intnum>=40)
{
  intnum=0;
  CCP1CON=0x00;
  RC5=!RC5;


}
}
}
void initial()
{

    TMR1H=(65536-50000)/256;//求模
        TMR1L=(65536-50000)%256;//求余

    INTCON=0xc0;//0B11000000 GIE PEIE =1
        PIE1=0x01;//TMR1E=1
        T1CON=0x01;//TMR1ON=1

        TRISC=0B00000000;

        ANSEL=0x00;

        intnum=0;
        pwm_duty=100;
    i=0;
       

}
void ccp1_pwm()
{
     TRISC5=0;
     PR2=0x63;   
     CCP1CON=0B00001100;
     T2CKPS0=1;
     T2CKPS1=1;
     CCPR1L=pwm_duty;
     TMR2ON=1;
}
void interrupt power(void)
{
  GIE=0;
if(TMR1IF)
{
    TMR1IF=0;
    TMR1L=0;
    TMR1H=(65536-50000)/256;//求模
        TMR1L=(65536-50000)%256;//求余

    intnum++;

}  
GIE=1;
}
程序如上,为什么intnum取值大于45后 程序就运行不正常了,小于45的数都可以实现闪烁,实在是搞不清问题所在。

最新回复

好的,120778093  详情 回复 发表于 2017-9-21 16:54
点赞 关注
 

回复
举报

419

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
大于45之后是什么效果?看代码应该和45每太大关系吧
 
 
 

回复

637

帖子

2

TA的资源

版主

板凳
 
是不是看门狗起作用了?
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

4
 
dingzy_2002 发表于 2017-8-7 14:06
是不是看门狗起作用了?

是的 我弄好了 清看门狗或者禁止就好了,对了 现在弄IIC遇见问题 就是我用的FP16F722 视频是FP16F877 他里面有个寄存器SSPCON2 而FP16F722里面没有这个 里面用到起始信号SEN 停止PEN RCEN 啊 这些PIC16F722都没有 不知道怎么弄了

点评

这个要看PIC16F722的数据手册,一般新的器件比以前的器件配置位要更多一些,位置也有可能变化 不过,好像PICC本身带有相关的函数库,你直接调用下,说不一定就可以了. 我一般是直接查数据手册,自己配置相关的寄存器,一  详情 回复 发表于 2017-8-10 10:39
 
 
 

回复

637

帖子

2

TA的资源

版主

5
 
lihui17wu 发表于 2017-8-10 08:58
是的 我弄好了 清看门狗或者禁止就好了,对了 现在弄IIC遇见问题 就是我用的FP16F722 视频是FP16F877 他 ...

这个要看PIC16F722的数据手册,一般新的器件比以前的器件配置位要更多一些,位置也有可能变化
不过,好像PICC本身带有相关的函数库,你直接调用下,说不一定就可以了.
我一般是直接查数据手册,自己配置相关的寄存器,一方面熟悉器件,另一方面是了解新的器件功能.
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

6
 
dingzy_2002 发表于 2017-8-10 10:39
这个要看PIC16F722的数据手册,一般新的器件比以前的器件配置位要更多一些,位置也有可能变化
不过,好像PI ...

谢谢你的回答,对了,PIC单片机你一般用的是什么型号啊

点评

我较常用的PIC器件是: PIC16F917 PIC16F883/4/7 PIC16F616/676 PIC12F615/675 PIC16F1933/7/9 PIC16F819/677 PIC12F1501  详情 回复 发表于 2017-8-12 10:40
 
 
 

回复

637

帖子

2

TA的资源

版主

7
 
lihui17wu 发表于 2017-8-10 15:31
谢谢你的回答,对了,PIC单片机你一般用的是什么型号啊

我较常用的PIC器件是:
PIC16F917
PIC16F883/4/7
PIC16F616/676
PIC12F615/675
PIC16F1933/7/9
PIC16F819/677
PIC12F1501

点评

,都来晒一下用过的型号:PIC18F4620 PIC32MX250F128D PIC16F1823  详情 回复 发表于 2017-8-26 22:42
兄弟,那天可以过去拜访您不?  详情 回复 发表于 2017-8-26 13:59
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

8
 
dingzy_2002 发表于 2017-8-12 10:40
我较常用的PIC器件是:
PIC16F917
PIC16F883/4/7
PIC16F616/676
PIC12F615/675
PIC16F1933/7/9
PIC1 ...

可以发一个基于PIC16F616的红外接收程序给我吗 我主要用的是PIC16F616和PIC16F722,万分感谢,卡很久了

点评

可能是行业不一样,我涉及的是汽车电子产品,没做过红外接收的产品。所以抱歉  详情 回复 发表于 2017-8-15 14:41
 
 
 

回复

637

帖子

2

TA的资源

版主

9
 
lihui17wu 发表于 2017-8-14 17:18
可以发一个基于PIC16F616的红外接收程序给我吗 我主要用的是PIC16F616和PIC16F722,万分感谢,卡很久了

可能是行业不一样,我涉及的是汽车电子产品,没做过红外接收的产品。所以抱歉
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

10
 
dingzy_2002 发表于 2017-8-15 14:41
可能是行业不一样,我涉及的是汽车电子产品,没做过红外接收的产品。所以抱歉

哦 没事  以后有其他问题还望不吝赐教啊

点评

没问题。  详情 回复 发表于 2017-8-17 08:52
 
 
 

回复

637

帖子

2

TA的资源

版主

11
 
lihui17wu 发表于 2017-8-15 15:07
哦 没事  以后有其他问题还望不吝赐教啊

没问题。
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

12
 
dingzy_2002 发表于 2017-8-12 10:40
我较常用的PIC器件是:
PIC16F917
PIC16F883/4/7
PIC16F616/676
PIC12F615/675
PIC16F1933/7/9
PIC1 ...

兄弟,那天可以过去拜访您不?

点评

你在哪?我在安徽合肥.  详情 回复 发表于 2017-8-28 11:50
 
个人签名Microchip原装正品单片机,另有可替换单片机(无需修改PCB资料,程序可共用PIC的) 有用到的兄弟多多支持! 期待您的来电。 电话13430885511
 
 

回复

721

帖子

1

TA的资源

一粒金砂(高级)

13
 
dingzy_2002 发表于 2017-8-12 10:40
我较常用的PIC器件是:
PIC16F917
PIC16F883/4/7
PIC16F616/676
PIC12F615/675
PIC16F1933/7/9
PIC1 ...

,都来晒一下用过的型号:PIC18F4620 PIC32MX250F128D PIC16F1823
 
 
 

回复

637

帖子

2

TA的资源

版主

14
 
13430885511 发表于 2017-8-26 13:59
兄弟,那天可以过去拜访您不?

你在哪?我在安徽合肥.
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

15
 

#include
#include
void initial();   
void ccp1_pwm();
void interrupt power(void);
void delay (unsigned int x,unsigned int y);

unsigned int num=0;
unsigned int num1=0;
unsigned int work_en=0;
unsigned int T1=1;
unsigned int T0=1;
unsigned int num2=0;

main()  
{
  initial();

while(1)
{
  asm("CLRWDT");

if(work_en==0)
{

  CCP1CON=0x00;
  RC5=0;
}
else
{
   
  T0=0;
if(num<200)
{

  CCP1CON=0x00;
  RC5=1;
}
else
{

work_en=0;
num=0;
T0=1;
}

}

}


}
void initial()
{
PORTC=0x00;
TRISC=0x00;
OPTION_REG=0B10001111;
INTCON=0B11001000;
TMR1H=(65536-50000)/256;//求模
TMR1L=(65536-50000)%256;//求余
PIE1=0x01;//TMR1E=1
T1CON=0x01;
PORTA=0x00;
TRISA=0B00100100;
IOCA=0B00100000;


}
void ccp1_pwm()
{
     TRISC5=0;
     PR2=0x18;   
     CCP1CON=0B00101100;
     T2CKPS0=1;
     T2CKPS1=1;
     CCPR1L=0x0C;
     TMR2ON=1;
}
void interrupt power(void)
{
asm("CLRWDT");


if(RAIF==1)  
{
        if(RA5==1)
        {
   work_en=1;
   
        }
        else
        {
     asm("NOP");
        }
      
        RAIF=0;
}  
if(TMR1IF==1)
{
  asm("CLRWDT");
TMR1H=(65536-50000)/256;//求模
TMR1L=(65536-50000)%256;//求余
if(T0==0)
{
  num++;
}

TMR1IF=0;
}

}
void delay (unsigned int x,unsigned int y)//14+{3*(Y-1)+7}*(X-1)
{
   unsigned int z;
   do
     {
      z=y;
      do{;}
      while(--z);
     }
    while(--x);
}

这个程序我用PORTA RA5 电平变化中断 但是出现问题 感觉是在不停的进入中断,本来我的含义是检测到电平变化,自己定时亮灯,结果灯一直在亮灭亮灭,不知道是不是程序问题 还是产生电平变化的东西出问题

点评

有没有可能是WDT起作用了? 你看亮灭的频率,与WDT是否符合? 单看程序,好像RA5中断部分没什么问题.  详情 回复 发表于 2017-9-20 13:22
 
 
 

回复

637

帖子

2

TA的资源

版主

16
 
lihui17wu 发表于 2017-9-19 22:29
#include
#include
void initial();   
void ccp1_pwm();
void interrupt power(void);
void dela ...

有没有可能是WDT起作用了?
你看亮灭的频率,与WDT是否符合?
单看程序,好像RA5中断部分没什么问题.

点评

WDT我都直接关闭了,这个就是不知道是什么影响了,这个电平变化接的是红外感应,开始我是担心红外感应头在自己没有人也感应输出了 后来才用查询法 发现没有,所以还是担心电平变化中断有什么问题,不过这个也是以会  详情 回复 发表于 2017-9-20 14:55
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

17
 
dingzy_2002 发表于 2017-9-20 13:22
有没有可能是WDT起作用了?
你看亮灭的频率,与WDT是否符合?
单看程序,好像RA5中断部分没什么问题.

WDT我都直接关闭了,这个就是不知道是什么影响了,这个电平变化接的是红外感应,开始我是担心红外感应头在自己没有人也感应输出了 后来才用查询法 发现没有,所以还是担心电平变化中断有什么问题,不过这个也是以会正常 ,一会又比如我设置的10秒 亮10秒 闪一下又接着10秒。以前都没用过电平变化中断,担心自己是不是有什么地方没注意到 所以贴出来参考下

点评

如果是这样,可以这么进行调试(如果有在线调试工具就更好了) 1.先关闭PORTA,5的电平中断,看正常否 2.打开电平中断,看中断时,电平状态是否是因为电平变化引起的.  详情 回复 发表于 2017-9-20 16:55
 
 
 

回复

637

帖子

2

TA的资源

版主

18
 
lihui17wu 发表于 2017-9-20 14:55
WDT我都直接关闭了,这个就是不知道是什么影响了,这个电平变化接的是红外感应,开始我是担心红外感应头 ...

如果是这样,可以这么进行调试(如果有在线调试工具就更好了)
1.先关闭PORTA,5的电平中断,看正常否
2.打开电平中断,看中断时,电平状态是否是因为电平变化引起的.

点评

可以加个QQ方便聊天吗  详情 回复 发表于 2017-9-21 16:09
你又没有遇见主要的问题 使能INT中断的时候,感觉AD转换没用了  详情 回复 发表于 2017-9-21 16:06
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

19
 
dingzy_2002 发表于 2017-9-20 16:55
如果是这样,可以这么进行调试(如果有在线调试工具就更好了)
1.先关闭PORTA,5的电平中断,看正常否
2.打 ...

你又没有遇见主要的问题 使能INT中断的时候,感觉AD转换没用了
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

20
 
dingzy_2002 发表于 2017-9-20 16:55
如果是这样,可以这么进行调试(如果有在线调试工具就更好了)
1.先关闭PORTA,5的电平中断,看正常否
2.打 ...

可以加个QQ方便聊天吗 我的1310520969

点评

好的,120778093  详情 回复 发表于 2017-9-21 16:54
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表