[PIC®/AVR®/dsPIC®产品] PIC12F629仿真出错 新手求教

[复制链接]
1302|4
 楼主| daijiabin3 发表于 2016-1-5 15:27 | 显示全部楼层 |阅读模式
本帖最后由 daijiabin3 于 2016-1-5 15:29 编辑

小弟新手,接触PIC单片机不久,现做个PIC12F629的一个IO口(即#2pin——GP5)输出一方波  
可是在proteus仿真的时候有错误提示:[PIC12 CORE] PC=0x0011. Stack overflow executing CALL instruction. [U1]
网上查询的原因是看门狗的问题。可是在程序内我已经关闭了看门狗功能,极有可能是小弟不会正确设置。
附上代码,望指正错误

  1. #include<pic.h>
  2. #include <htc.h>
  3. __CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);

  4. void interrupt PWMGP(void);
  5. unsigned char stat = 0;
  6. void main()
  7. {
  8. TRISIO5=0;     //GP5=U_2PIN=输出

  9. //Timer0初始化设置
  10. PSA=0;//Timer0 使用预分频器
  11. //Timer0选择分频率为1:2
  12. PS0=0;PS1=0;PS2=0;
  13. //内部时钟定时方式,定时时间:20uS,误差:0uS
  14. T0CS=0;
  15. TMR0=0xF6;
  16. T0IE=1;//Tiemr0中断允许
  17. GIE=1;
  18. GP5=0;
  19. while(1)
  20. {     
  21. }
  22. }

  23. void interrupt PWMGP(void)
  24. {
  25. if(T0IF)
  26.   {
  27.    T0IF=0;
  28.    TMR0=0xF6;
  29.    if(stat==1)
  30.    {
  31.       GP5=0;
  32.    stat=0;   
  33.    }
  34.    else
  35.    {
  36.        GP5=1;
  37.        stat=1;
  38.    }
  39.   }
  40. }

 楼主| daijiabin3 发表于 2016-1-5 16:07 | 显示全部楼层
自己顶一下  
GeekyGeek 发表于 2016-1-7 20:56 | 显示全部楼层
怀疑是20us时间太短,你试着把时间调到200us试试
yewuyi 发表于 2016-1-8 08:24 | 显示全部楼层
型号太老。。。
alont 发表于 2016-1-9 22:06 | 显示全部楼层
中断太快,进出中断花了10us,还,想干嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部