lanfeng143

    1. mega28控制CC1100通信问题 6/3495 嵌入式系统 2010-06-24
      引用 5 楼 kingkb 的回复: 可以用3V拉啊
      我用的单片机是mega128,不是mega128L。所以只能用5V的
    2. 关于画芯片封装问题 15/8745 嵌入式系统 2010-06-07
      知道换算方法就可以了
    3. stc单片机测频率问题 14/6649 嵌入式系统 2009-10-29
      引用 3 楼 jiqiang01234 的回复:
      引用楼主 xmjmengmeng 的回复: 我用STC单片机测量频率(0-26HZ).频率信号由外部中断1—INT1引进,采用下降沿触发方式,由TIMER1测量两个下降沿之间的时间。我写的程序只能测量1—3HZ的,频率再高一点就乱跳 下面是我的代码。主程序应该没什么问题,已经调好久了,就是找不出原因,哪位能帮我看看,不胜感激!! /********************************************************************************************* 定时器一中断程序 ********************************************************************************************/ C/C++ codevoid init_TIMER1() {   TMOD=0x11;//TMOD=#00010001,定时器,工作方式1(16位定时器/计数器)TH1=0x00; TL1=0x00; ET1=1;//定时器1开中断TR1=1;//定时器启动计数} TIMER1_serv() interrupt3 {if(flg==1)   {TF1=0; t1_cut++;  }//TF1=1时,计数溢出}/************************************************************************************************************* 外部中断1 *************************************************************************************************************/void init_INT1() { dely(100);   EA=1;//CPU所有中断开  dely(100);   EX1=1;//INT1中断开  dely(100);   IT1=1;//INT1下降沿触发}void INT1_sevr() interrupt2using1 {if(flg==0)       { puls_1=TH1*256+TL1;       flg=1;       IE1=0;}elseif(flg==1)       { puls_2=TH1*256+TL1;//TR1=0;//停止计数//ET1=0;//关定时器一          period=65536*t1_cut+ puls_2+0x01- puls_1; t1_cut=0; flg=0;     freq=500000/period;     IE1=0;//外部中断一请求标志位清零      } }
      注意一下红色的这两句,我担心可能已经超出了运算范围,从代码里看不到各变量都是什么类型的。
      你真的很有经验O(∩_∩)O,这里确实出了个问题 period,freq都定义为unsigned long型,但把puls_1,puls_2定义成了unsigned int 型了,都改成usigend long就好了。 但是又出现了另一个问题,我在显示子程序里面规定,只要频率大于26HZ,指针都转到最大位置,当我每次把频率调到大于25时,指针就归零了。我如果把INT1_serv里面的程序注释掉,直接给freq赋值,比如说:freq=30;IE1=0;指针就可以正确显示到最大。这说明还是测量的频率不对,这是为什么呢?
    4. 【抢分了】今天生日散分!!!! 21/4388 嵌入式系统 2009-09-03
      嘿嘿,

最近访客

< 1/1 >

统计信息

已有58人来访过

  • 芯积分:--
  • 好友:--
  • 主题:1
  • 回复:4

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言