完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 St丶0917 于 2020-5-5 17:26 编辑
我的毕设题目是设计一个寻迹避障小车.目前我完成了硬件电路的搭建,开始编写软件程序。我已经完成了显示模块和L298N电路驱动模块的软件编写。但是,两个模块的程序我分开来仿真都能运行,只要放在一起就报错。 L298N的代码: #include #include #include #include void timer1_init(void) { TCCR1A =0x00; TCCR1B =0x00; TCCR1A =0xA1; TCCR1B =0x0A; TCNT1 =127; } void timer1_ovf_isr(void) { TCNT1 =0x00; } void init_devices(void) { cli(); DDRD = 0xFF; PORTD = 0xF0; timer1_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = (1< sei(); } void motor_a_change_Speed (signed char speed) { if (speed>0) { OCR1A = speed; PORTD &= ~(1<<0) ; PORTD |= (1<<1) ; } else if (speed<0) { OCR1A = -speed; PORTD |= (1<<0) ; PORTD &= ~(1<<1) ; } else { OCR1A = 0 ; PORTD |= (1<<0) ; PORTD |= (1<<1) ; } } void motor_b_change_Speed (signed char speed) { if (speed>0) { OCR1B = speed; PORTD &= ~(1<<2) ; PORTD |= (1<<3) ; } else if (speed<0) { OCR1B = -speed; PORTD |= (1<<2) ; PORTD &= ~(1<<3) ; } else { OCR1B = 0 ; PORTD |= (1<<2) ; PORTD |= (1<<3) ; } } void main(void) { init_devices(); while(1) { PORTD= 0x05; delay_ms(500); OCR1A =250; OCR1B =25; } } LCD的代码 /******************************************************* This program was created by the CodeWizardAVR V3.39b Automatic Program Generator ?Copyright 1998-2020 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.ro Project : Version : Date : 2020/5/2 Author : Company : Comments: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.00000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *******************************************************/ #include #include #include #include #define uchar unsigned char #define uint unsigned int #define schar signed char #define lcd_clear() lcd_command(1) #define lcd_origin() lcd_command(2) #define LCD_RS 2 #define LCD_RW 1 #define LCD_EN 0 uchar lcd_busy(void) { char result ; DDRC = 0x00 ; PORTB &= ~(1 << LCD_RS); PORTB |= (1 << LCD_RW); PORTB &= ~(1 << LCD_EN); delay_us(50); PORTB |= (1 << LCD_EN); delay_us(50); delay_us(50); delay_us(50); result=PINC&0x80; PORTB &= ~(1 << LCD_EN); delay_us(50); DDRC = 0XFF ; return result; } void lcd_clk(void) { PORTB |= (1 << LCD_EN); delay_us(50); PORTB &= ~(1 << LCD_EN); delay_us(50); } void lcd_command(uchar command) { while(lcd_busy()); PORTB &= ~(1 << LCD_RS); PORTB &= ~(1 << LCD_RW); PORTB &= ~(1 << LCD_EN); PORTC = command; lcd_clk(); delay_ms(2); } void lcd_data(uchar data) { while(lcd_busy()); PORTB |= (1 << LCD_RS); PORTB &= ~(1 << LCD_RW); PORTB &= ~(1 << LCD_EN); PORTC = data; lcd_clk(); delay_ms(2); } void lcd_puts(uchar line,uchar *p) { lcd_origin(); lcd_command(line); while((*p)!=0) { lcd_data(*p); p++; } } void inttolcd(uchar posi, uint value) { char buff[7]; itoa(value,buff); lcd_puts(posi,buff); } void lcd_init() { DDRC = 0xFF; DDRB = 0xFF; lcd_command(0x38); lcd_command(0x38); lcd_command(0x38); lcd_command(0x38); lcd_command(0x08); lcd_command(0x01); lcd_command(0x06); lcd_command(0x0C); } void main(void) { long a=1000; lcd_init(); lcd_puts(0x0,"Counter="); DDRD = 0x0F; motor_a_change_Speed (50) ; motor_b_change_Speed (50) ; while(1) { inttolcd(0xc9,a); delay_ms(100); a++; } } 请大神看看哪里出了问题!感谢!
|
|
相关推荐
1个回答
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-搭建自己的ubuntu系统之ubuntu系统安装
216 浏览 0 评论
国产芯上运行TinyMaxi轻量级的神经网络推理库-米尔基于芯驰D9国产商显板
348 浏览 0 评论
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
1676 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
1098 浏览 0 评论
1424 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10625 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-12 23:17 , Processed in 0.581140 second(s), Total 86, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号