Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать. 
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.
	
		
		
			
			
			 chinga » 27 сен 2011, 11:33
 chinga » 27 сен 2011, 11:33 
			
			Здравствуйте!
помогите вот с такой проблемой)
я с терминала пишу и отправляю слово(из нескольких букв) и это должно выводиться на ЛСД дисплее, получается с char, но с string не выходит.
- Код: Выделить всё
- #include <mega32.h>
 #include <delay.h>
 #include <stdio.h>
 #include <string.h>
 
 #include <alcd.h>
 #asm
 .equ __lcd_port=0x12; PORTB
 #endasm
 
 void main(void)
 {
 int k = 0;
 int n = 0;
 
 PORTA=0x00;
 DDRA=0x00;
 
 PORTB=0x00;
 DDRB=0x00;
 
 PORTC=0x00;
 DDRC=0xFF;
 
 PORTD=0x00;
 DDRD=0xFF;
 
 UCSRA=0x00;
 UCSRB=0x18;
 UCSRC=0x86;
 UBRRH=0x00;
 UBRRL=0x33;
 
 
 lcd_init( 16 );
 lcd_clear( );
 lcd_gotoxy( 4,0 );
 lcd_putsf( "LCD 16x02" );
 lcd_gotoxy( 0,1 );
 lcd_putsf( "CodeVision1.25.4" );
 delay_ms(1000);
 lcd_clear();
 
 
 while (1){
 char asd;
 
 while(UCSRA.7==1){
 asd = UDR;
 
 if(asd == 'q'){
 PORTC = 0b00000001;
 lcd_gotoxy( k, n );
 lcd_putsf("q");
 k++;
 }
 if(asd[0] == 'w'){
 PORTC = 0b00000010;
 lcd_gotoxy( k, n );
 lcd_putsf("w");
 k++;
 }
 if(asd[0] == 'e'){
 PORTC = 0b00000100;
 lcd_gotoxy( k,n );
 lcd_putsf("e");
 k++;
 }
 }
 }
 }
 
как выводить string?
 
		
			
			- 
				chinga
			
-  
- Сообщения: 203
- Зарегистрирован: 24 дек 2008, 17:55
- Откуда: Актюбинск
 
	 
	
	
		
		
			
			
			 Роботов » 27 сен 2011, 12:28
 Роботов » 27 сен 2011, 12:28 
			
			Можно так: 
1. Принимаете посылку из нескольких символов.
2. Записываете посылку в некий массив.
3. Выводите из массива посимвольно на дисплей.
			
		 
		
			
			- 
				 
 Роботов
-  
- Сообщения: 14
- Зарегистрирован: 06 сен 2011, 08:16
- Откуда: Московская обл.
- ФИО: Сергей
 
	 
	
	
		
		
			
			
			 chinga » 27 сен 2011, 13:19
 chinga » 27 сен 2011, 13:19 
			
			ну теория как бы понятно) вот как реализовать)
			
		 
		
			
			- 
				chinga
			
-  
- Сообщения: 203
- Зарегистрирован: 24 дек 2008, 17:55
- Откуда: Актюбинск
 
	 
	
	
		
		
			
			
			 HarryStar » 27 сен 2011, 13:26
 HarryStar » 27 сен 2011, 13:26 
			
			А что не выходит-то? Все отлично работает и со строками.
Создаете массив типа char string_from_terminal[100]; делаете счетчик (например k)с 0 и поступающие символы пихаете в массив string_from_terminal[k++] = asd; lcd_putchar(asd); lcd_gotoxy можно не делать, он сам по умолчанию сдвигает текущее знакоместо. В string_from_terminal у вас получается введенная с терминала строка. Если вы ее где-то собрались использовать, то нужно закрыть ее нулем string_from_terminal[k]=0;
Добавлено спустя 1 минуту 9 секунд:
почти так же как у вас, изменения то минимальны
			
		 
		
			
			- 
				 
 HarryStar
-  
- Сообщения: 996
- Зарегистрирован: 15 ноя 2010, 13:56
- Откуда: Нижний Новгород
- прог. языки: С, С++, РНР
 
	 
	
	
	
	Вернуться в Новичкам или основы основ роботостроения.
	
	Кто сейчас на конференции
	Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0