三路信号比较

[复制链接]
2194|5
 楼主| xmrforever 发表于 2010-3-1 16:50 | 显示全部楼层 |阅读模式
现在有三路输入信号需要相互比较,这三路信号都是频率相同方波,比较分两个状态:
状态一:三路信号相同
状态二:两路相同,另外一路相反
程序如下:
  1. if(cyc_count)
  2. {
  3. GIE=0; //关全局中断
  4. for(i=0;i<16;i++)//三路信号比较16次
  5. {
  6. if(RB0 ^ RA2)
  7. {
  8. if(!(RB0 ^ RA5))
  9. {
  10. flashup_count++;
  11. }
  12. }
  13. else
  14. {
  15. if(RB0 ^ RA5)
  16. {
  17. flashdown_count++;
  18. }
  19. else
  20. {
  21. flash_count++;
  22. }
  23. }
  24. }
  25. //根据信号的不同亮不同的灯
  26. if(flash_count > flashup_count)
  27. {
  28. if(flash_count > flashdown_count)
  29. {
  30. RB2=1;
  31. RB3=0;
  32. RB4=1;
  33. }
  34. else
  35. {
  36. RB2=1;
  37. RB3=1;
  38. RB4=0;
  39. }
  40. }
  41. else
  42. {
  43. if(flashup_count > flashdown_count)
  44. {
  45. RB2=0;
  46. RB3=1;
  47. RB4=1;
  48. }
  49. else
  50. {
  51. RB2=1;
  52. RB3=1;
  53. RB4=0;
  54. }
  55. }

  56. flash_count=0;
  57. flashup_count=0;
  58. flashdown_count=0;

  59. cyc_count=0;

  60. delay(200);
  61. GIE=1;//开全局
  62. }

我用的是PIC16F72,其中PB0、PA2、PA5是三路信号的输入口
现在比较的结果总是不对,我用示波器测试过信号是正常的
大侠们帮我看看代码有没有问题,是不是效率不够
兰天白云 发表于 2010-3-1 18:07 | 显示全部楼层
何为信号相同?搞清楚了就OK
 楼主| xmrforever 发表于 2010-3-1 18:10 | 显示全部楼层
起始电平,周期,幅度都相同
兰天白云 发表于 2010-3-1 18:31 | 显示全部楼层
相位?开会了,下次聊
 楼主| xmrforever 发表于 2010-3-1 18:53 | 显示全部楼层
没有相位差
 楼主| xmrforever 发表于 2010-3-1 18:54 | 显示全部楼层
如果有相位差就比较麻烦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:忍一忍就过去了

27

主题

177

帖子

0

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