roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 17:27

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Уарт - передатчик
СообщениеДобавлено: 20 янв 2018, 21:33 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
вот бы сделать такой передатчик... :) Считываешь данные с резисторов и передаешь их на экран компьютера... но я очень давно не брался за програмирование, и все подзабыл ... Короче без вашей помощи никак ) в общем, пацаны, хочется мне сделать этот передатчик и хоть немного почувствовать себя высокоранговым самцом ) но пока немогу понять, как задать массив их 512 переменных, например а, и как потом к нему обащаться чтобы посылать его на уарт... и как обращаться к переменным этого масссива, тоесть как записывать туда данные например в позиции , например а3, а4, а5, а6 этого массива и как считать эти позиции например.. Подскажите, плиз...

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 20 янв 2018, 22:10 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Эт типа стеб и потролить?

Код:
value = arrray[index];
Uart_send(value);


не?

Добавлено спустя 2 минуты 33 секунды:
А вобще нужна конкретика что есть и где и что подключаем

Добавлено спустя 1 минуту 54 секунды:
Не оно? Переносной UART терминал

Добавлено спустя 2 минуты 41 секунду:
AVR. Работа с UART

Дальше гугль в помощь


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 20 янв 2018, 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
Да уж какой там стеб...
Есть плата ардуино на АТмега 2560, компилятор Содвижн Авр

тоесть

value = a[512]; // назначаем массив из 512 переменных
Uart_send(value); // и посылаем его на уарт?

а теперь можно допустим с АЦП считывать и писать в а1, а2, а3 ? или array это команда?

я нашел во такую запись
char a[512]; // определяем массив а из 512 переменных (строка)
тогда наверно чтобы послать на уарт нужно будет писать
Uart_send(а);

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 20 янв 2018, 23:49 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Uart_send(а[0]);
..
Uart_send(а[511]);

Либо в цикле, либо только нужный индекс. посути работа с масивом на с.

С даным набором не работал, так что прямо код не подскажу, может есьть готовое API дл
я работы с UART. Смотри второй пример, код поидее должен для АВР быть подобный.

Если хотим послать число чтоб прочитать на терминале то нужно его перевести в текст.

Проблем с инициализацией уарта нет? чтото посылается/принимается?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 21 янв 2018, 00:04 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
мне нуюно сразу послать все 512 чисел одним пакетом, по протоколу ДМХ 512, это то же что уарт, только перед началом нужно синхроимпульс сформировать.. тоесть послать сразу весь массив.. или строку...
инициализировать пока не пробывал, думаю как обьявить этот массив чтобы можно было в него числа писать , тоесть в определенные места пакета фрейма

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 21 янв 2018, 00:47 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
C DMX не знаком,
но посылка масива:

Код:
unsigned int index;
char a[512];

/*заполнение масива*/
...
/*Послать синхроимпульс*/
...
/*послать даные*/
for (index=0;index<sizeof(a); index++)
{
Uart_send(а[index]);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 21 янв 2018, 23:26 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
Спасибо.
но почему то компилятор кодвидн авр пишет "undefinet simbol Uart_send
И я пытаюсь заполнить массив числами, пишу
a1 = 11;
но компилятор пишет что переменная a1 тоже не определена... тоесть ка заполнять конкретные ячейки массива - непонятно... и как читать из конкретных ячеек массива..

о, блин.. написал

a[1] = 11;

и компилятор не ругнулся !!!! Счас попробую )

да, а ты не знаешь как на дисплейчик 1602 выводить числа из массива ? :bad:
пишу

lcd_gotoxy(4,0);
lcd_putsf(a[1]);

и не работает ( пишет параметр 1 не совместим с типом flash (

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 22 янв 2018, 11:44 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
lcd_putchar .... или что то аналогичное

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 22 янв 2018, 14:23 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
А може почитать для начала чтото вроде "c для чайников", чтоб єлементарные вещи не спрашивать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 22 янв 2018, 14:42 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
Я так понял - что нужно
1. Присвоить элементам массива значения.
2. Отправить их в UART?

Написать пример (правда под руками только ардуино IDE).

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 22 янв 2018, 23:53 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
Aseris писал(а):
А може почитать для начала чтото вроде "c для чайников", чтоб єлементарные вещи не спрашивать?


полдня не работало и вдруг заработало )

[code
sprintf(string, "%4d", b3); это выводим переменую
lcd_puts(string);

sprintf(string, "%4d", a[1]); а это элемент массива
lcd_puts(string);]
[/code]

Добавлено спустя 4 минуты 43 секунды:
RootAdmin писал(а):
Я так понял - что нужно
1. Присвоить элементам массива значения.
2. Отправить их в UART?

Написать пример (правда под руками только ардуино IDE).


ну да, присвоить и отправить...
похоже что присвоить очень просто..
вот так

a[1] = 2;

а вот на запись
for (index=0;index<sizeof(a); index++)
{
Uart_send(a[index]);
}
компилятор ругается, что андефинит симбол Uart_send (

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 23 янв 2018, 09:59 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
вчера все работало..

Код:
    sprintf(string, "%4d", b);
    lcd_puts(string);

    sprintf(string, "%4d", b1);
    lcd_puts(string);   

    sprintf(string, "%4d", b2);
    lcd_puts(string);

    sprintf(string, "%4d", b3);
    lcd_puts(string);

  sprintf(string, "%4d",a[0]);
    lcd_puts(string);


    sprintf(string, "%4d", a[1]);
    lcd_puts(string);


    sprintf(string, "%4d", a[2]);
    lcd_puts(string);

    sprintf(string, "%4d", a[3]);
    lcd_puts(string);





поменял
sprintf(string, "%4d", a[1]);
lcd_puts(string);
на
sprintf(string, "%4d", a[1+1]);
lcd_puts(string);
и перестало выводить вторую строчку... на ЛСД..
вернул обратно - все равно не выводит..
если загнать в первую строчку, тоесть только 4 записи - выводит нормально..

че за "офигеть", может знает кто..

сам дисплейчик работает нормально, если писать в него просто символы...

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 23 янв 2018, 12:30 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
что есть string ?

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уарт - передатчик
СообщениеДобавлено: 23 янв 2018, 23:44 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
Romikgy писал(а):
что есть string ?


функция

void sprintf(char flash, char flash *fmtstr [,arg1, arg2, ...])
она форматирует строку и записывает ее в массив. после этого ее можно вывести на экран.

unsigned char temp = 123;
unsigned char string[20];
sprintf(string, "temp = %05d\n", temp);
lcd_puts(string);


Что означает эта абра-кадабра. Первая строка создает переменную и присваевает ей
значение. Тут все понятно, а вот что делает вторая. Все по порядку. Сначала выводится
запись temp = , затем 00123. Почему выводится 00123. А потому что у нас есть условие
%05d\n которое говорит:

1) % - будем форматировать значения первого аргумента
2) 0 - будем выводить n знаков, пустые забьем нулями
3) 5 - выводим 5 знаков, если число меньше 5 знаков, то заполнить пустышки
нулями. Об этом говорит пункт 2. Число будет выровнено по правому краю.
4) d - выводим число в десятичном формате.
5) \n - Заставит после вывода символа перейти на другую строку.


взято отсюда http://www.avrki.ru/articles/content/lcdsegment/

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


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

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


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

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


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

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