完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`#include #include //#include #define BIT(x) (1< #define uint unsigned int int point=3; const unsigned char led_7[13]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0x0c6,0xFF}; const unsigned char position[4]={0xfe,0xfd,0xbf,0x7f}; unsigned char dis_buf[4]={0}; int v_ok=0; unsigned int f_time=0,l_time=0;//f_time l_time即first和last,存储两次间隔的初始态和末态,以timer1的时序为单位 float time=0;//time记录两次时间间隔,以秒为单位 double v; #define sec 3906.25 //一秒钟 #define R 1 //车轮半径 void port_init() { DDRA=0xff; PORTA=0x00; DDRB=0x00; PORTB=0x00; DDRC=0xff; PORTC=0x00; PORTD=0x04; DDRD=0x03; } void time1_init() { TCCR1B=0x00; TCCR1A=0x00; TCCR1B=0xC5; } void time0_init() { TCCR0=0x00; TCNT0=0x00; OCR0=0x7D; TCCR0=0x0B; } void init_devices(void) { //CLI(); SREG=SREG&0x7F; port_init(); time1_init(); time0_init(); MCUCR=0x00; //SFIOR&=0xFB; //MCUCSR=0x40; GICR=0x00; TIMSK=0x22; SREG=SREG|0x80; //SEI(); } //#pragma interrupt_handler timer0_ovf_isr:20//刷新速度 void display() { //TCNT0=OCR0; static char i=0; PORTC=0x00; if(i>=4) {i=0;} PORTA=(led_7[dis_buf[i]]); PORTC=~position[i]; if(i==point) { PORTA&=~(0x80); } i++; } ISR(TIMER1_CAPT_vect) { f_time=l_time; l_time=ICR1; } void to_buf() { int i=0; double tem_v=v; if(v>=1000) { point=3; tem_v*=1; } if(v>=100&&v<1000) { point=2; tem_v*=10; } if(v>=10&&v<100) { point=1; tem_v*=100; } if(v<10) { point=0; tem_v*=1000; } for(i=0;i<4;i++) { dis_buf[3-i]=(int)tem_v%10; tem_v/=10; } } void main() { init_devices(); while(1) { time=((l_time)-(f_time))/sec; if(time==0)v=0; else v=1.57*(1/time)*R; to_buf(); } } 我想问大师们 如果脉冲突然中止 速度显示为零 应该怎样改程序 或者给个思路 ` |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5125 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7769 浏览 0 评论
3027 浏览 2 评论
3103 浏览 1 评论
10055 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 09:56 , Processed in 0.704883 second(s), Total 51, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号