OpenEdv-开源电子网

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

ATMEGA16 测量发动机转速程序

[复制链接]

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-3-11
在线时间
14 小时
发表于 2016-5-7 08:06:01 | 显示全部楼层 |阅读模式
1金钱
本人初学者,想用M16测一个发动机转速,有没有哪位大哥有现成的程序啊。小弟跪求。QQ号765605164

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-3-11
在线时间
14 小时
 楼主| 发表于 2016-5-7 08:10:50 | 显示全部楼层
void T0_init()
{
                // TCCR0A=0X0E; //ía2¿T0½ÅϽμÑØ′¥·¢¼Æêy£¬CTCÄ£ê½
                 TCCR0A=0X0F; //ía2¿T0½ÅshangÑØ′¥·¢¼Æêy£¬CTCÄ£ê½
                 TCNT0=0X00;
                 OCR0A=0x01;   // OCR0A = 0x09(9),(9 + 1) = 2  2é¼ˉ10 £¬è»oóÇ󯽾ù
                 TIMSK0|=0X02;
}


void T2_init()
{
                 TCCR2A=0X0A;  //ía2¿ê±Öó £¬8·ÖÆμ£¬CTCģ꽣¬ê±»ùÎa1us
                 TCNT2=0X00;
                 OCR2A=0X63;    //OCR2A=0X63(99),(99+1)/1000=0.1MS
                 TIMSK2|=0X02;
}
//T/C0±è½ÏÆ¥ÅäÖD¶Ï·tÎñ£¬·¢¶ˉ»ú
#pragma interrupt_handler t0:11
void t0()
{   
                 fadongjizhuansu_time2_new=TCNT2;
                 TCNT2=0;
                 TIFR0|=0X02;
               
                 fadongjizhuansu_shijian_H=fadongjizhuansu_freq;
                 fadongjizhuansu_freq=0;
                 fadongjizhuansu_ok=1;
               
}
#pragma interrupt_handler t2:5     
void t2()
{
                 fadongjizhuansu_freq++;
               
                  
                 SEI();// ¿aÖD¶Ï£¬ÔêDíÖD¶ÏǶì×£¬T/C0ÖD¶Ï¿é′ò¶Ï¸ÃÖD¶Ï·tÎñ       
                 
               
                 caiji_data();       
                 display();
               
}
void main()
{
                 
                          
                 char i;
                 T2_init();
                 T0_init();
               
         
                 IO_init();
                 
                                 
                 uart_init(9600);
                 
                 for(i=0;i<=4;i++)
                     dis_buff=0;
         SEI();                        // &#191;a·&#197;è&#171;&#190;&#214;&#214;D&#182;&#207;                  
                 while(1)
                 {               
                        if(fadongjizhuansu_ok)  //·¢&#182;ˉ&#187;ú
                                {
                                         fadongjizhuansu_shijian=(fadongjizhuansu_shijian_H*100+fadongjizhuansu_time2_new)/2; //&#195;&#191;′&#206;2é&#188;ˉ10è|£&#172;&#199;ó&#198;&#189;&#190;ù
                                         fdjzhuansu=60000000/fadongjizhuansu_shijian; //·¢&#182;ˉ&#187;úμ&#196;×a&#203;ù£¨&#195;&#191;·&#214;&#214;ó£&#169;
                                         fadongjizhuansu=fdjzhuansu/100+1;  // &#203;í&#184;&#248;é&#207;&#206;&#187;&#187;úμ&#196;êy,&#214;&#187;&#196;ü&#207;&#212;ê&#190;1&#206;&#187;&#187;òê&#199;2&#206;&#187;       
                                         
                                         freq_to_disbuff();
                                     fadongjizhuansu_ok=0;                                       
                                                       
                                }
                                else
                                  fadongjizhuansu=0;
                                  
                                         
                              uart_TXB();               
                                 
                                 delay_MS(200);
       
                 }

}


这是部分程序,这种方式,没有输入脉冲的时候,转速也不清零。不知道怎么弄了,转速好像还有捕捉方式。跪求啊。

回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2021-12-27
在线时间
2 小时
发表于 2021-12-27 13:25:12 | 显示全部楼层
请问你的问题解决了么?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 01:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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