完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`我准备在小车轮胎上涨一个传感器,然后利用avr单片机来测量小车的速度,并用led显示。 我写的程序不对,,大神帮我下 #include #include int point=3; char led_7[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x39,0x00}; char position[4]={0xfe,0xfd,0xbf,0x7f}; char dis_buf[4]={0}; int v_ok=0; unsigned int f_time=0,l_time=0; float time=0; double v; #define sec 3906.25 #define R 0.5 void port_init() { DDRA=0xff; PORTA=0x00; DDRB=0x00; PORTB=0x00; DDRC=0xff; PORTC=0x00; PORTD=BIT(2); DDRD=(BIT(0)|BIT(1)); } 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(); port_init(); time1_init(); time0_init(); MCUCR=0x00; GICR=0x00; TIMSK=0x22; SEI(); } #pragma interrupt_handler timer0_ovf_isr:20//刷新速度 { //TCNT0=OCR0; char i=0, j=0; if((j++)==0) v_ok=1; PORTC=0xff; if(i>4) {i=0;} PORTA=~(led_7[dis_buf]); PORTC=~position; if(i==point) { PORTA&=~BIT(7); } i++; } #pragma interrupt_handler timer1_capt_isr:6//上升沿触发 { //value=ICR1L;//先读低字节 //value|=ICR1H<<8;//读高字节并移位到高字节 f_time=l_time; l_time=ICR1; } void buf() { int i=0; double tem_v=v; if(v>=1000) { point=3; } 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(void) { init_devices(); while(1) { if(v_ok) { v_ok=0; time=(l_time)-(f_time); time=time/sec; if(time==0)v=0; else v=1.57*(1/time)*R; if(v>10&&v<15) PORTD|=BIT(0); else if(v>15) PORTD|=BIT(1); if(!(PIND&BIT(2))) v*=3.6; buf(); } } } 下面是仿真图 ` |
|
相关推荐
6 个讨论
|
|
说一下现象撒。。。不然我们也晓不得程序哪儿有问题..........
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5110 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7758 浏览 0 评论
3016 浏览 2 评论
3100 浏览 1 评论
10046 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 06:51 , Processed in 0.712325 second(s), Total 53, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号