roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 21:48

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: работа с String in CVAVR
СообщениеДобавлено: 27 сен 2011, 11:33 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Здравствуйте!
помогите вот с такой проблемой)
я с терминала пишу и отправляю слово(из нескольких букв) и это должно выводиться на ЛСД дисплее, получается с 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?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: работа с String in CVAVR
СообщениеДобавлено: 27 сен 2011, 12:28 
Не в сети
Аватара пользователя

Зарегистрирован: 06 сен 2011, 08:16
Сообщения: 14
Откуда: Московская обл.
ФИО: Сергей
Можно так:
1. Принимаете посылку из нескольких символов.
2. Записываете посылку в некий массив.
3. Выводите из массива посимвольно на дисплей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: работа с String in CVAVR
СообщениеДобавлено: 27 сен 2011, 13:19 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
ну теория как бы понятно) вот как реализовать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: работа с String in CVAVR
СообщениеДобавлено: 27 сен 2011, 13:26 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
А что не выходит-то? Все отлично работает и со строками.

Создаете массив типа 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 секунд:
почти так же как у вас, изменения то минимальны


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO