Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Последовательный вывод данных

Непрочитано 13.05.2010, 11:09  
Mitrar
Частый гость
 
Регистрация: 25.05.2007
Сообщений: 37
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
Mitrar на пути к лучшему
По умолчанию Последовательный вывод данных

Здравствуйте, подскажите пожалуйста. Постараюсь описать проблему.
Используемый чип mega16, пишу в CodeVision. Необходимо вывести последовательную передачу данных
в такой форме, ну например число 1011, соответствовало 10 01 10 10. т.е 1 это 10, а 0 это 01.
Скорость передачи данных 42 кбод. Вывод на PIND.5, а на PIND.6 инверсный.
Пробовал реализовать с помощью цикла, получается "грязный" сигнал.

int a=0b001010;
for (i=0;i‹6;i++)

{PORTD.5=(0x0001 & (a››i));
PORTD.6=~PORTD.5;
delay_us(11);
PORTD.5=~PORTD.5;
PORTD.6=~PORTD.5;
delay_us(11); };
Подскажите как можно реализовать с помощью ШИМ.
Реклама:
Mitrar вне форума  
Непрочитано 13.05.2010, 11:23  
mrKirill
Вид на жительство
 
Аватар для mrKirill
 
Регистрация: 12.04.2007
Сообщений: 339
Сказал спасибо: 2
Сказали Спасибо 34 раз(а) в 30 сообщении(ях)
mrKirill на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Сообщение от Mitrar Посмотреть сообщение
PORTD.5=~PORTD.5;
PORTD.6=~PORTD.5;
delay_us(11);
Не очень понял, зачем эти стоки у Вас?
По-моему из логики описания Вашего алгоритма они выбиваются.
__________________
Гидравлика + электроника = POWER
mrKirill вне форума  
Непрочитано 13.05.2010, 12:45  
Mitrar
Частый гость
 
Регистрация: 25.05.2007
Сообщений: 37
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
Mitrar на пути к лучшему
По умолчанию Последовательный вывод данных

Число a=0b001010;

я вывожу 0 как 01, т.е. по порядку 0 а потом ~PORTD.5(инвертирую и получается 01).
Mitrar вне форума  
Непрочитано 13.05.2010, 13:54  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Я пишу на gcc так что не пинайте!
Мне кажется что вы хотели где то так, хотя я бы сделал на таймере, да и алгоритм мне не по душе:

int a=0b001010;
unsigned char b=0; //Вспомогательная переменная

for (i=0;i!=8;i++)
{
if ((a››b)&0x80) //Сдвигаем а на 0 в первом проходе, в следующих 1 и накладываем маску 0b10000000
//Если значение истинно записываем 1,0
{
PORTD.5=1;
PORTD.6=0;
}
else //иначе записываем 0,1
{
PORTD.5=0;
PORTD.6=1;
}
delay_us(11);
if (PIND.5)PORTD.5=0; //Если значение истинно записываем 0
else PORTD.5=1; //иначе записываем 1
if (PIND.6)PORTD.6=0;
else PORTD.6=1;
delay_us(11);
b=1;
}

Последний раз редактировалось harchenko_pavel; 13.05.2010 в 14:04.
harchenko_pavel вне форума  
Непрочитано 13.05.2010, 14:32  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 140
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Re: Последовательный вывод данных

непойму, rs485 протокол пытается реолизовать так для этого функции спецальная есть
vvkka вне форума  
Непрочитано 13.05.2010, 16:53  
mrKirill
Вид на жительство
 
Аватар для mrKirill
 
Регистрация: 12.04.2007
Сообщений: 339
Сказал спасибо: 2
Сказали Спасибо 34 раз(а) в 30 сообщении(ях)
mrKirill на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Сообщение от vvkka Посмотреть сообщение
не пойму, rs485 протокол пытается реализовать так для этого функции специальная есть
Мало того для этого специальный драйвер есть.

С такими приколами по-моему кодировка Манчестер работает...Помню делал что-то подобное, но за 1 и 0 у меня были частоты. 2х-тональная модуляция, чтобы передать через аудиотракт радиостанции...
__________________
Гидравлика + электроника = POWER
mrKirill вне форума  
Непрочитано 14.05.2010, 05:15  
Mitrar
Частый гость
 
Регистрация: 25.05.2007
Сообщений: 37
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
Mitrar на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Фактически это RS485, подскажите какая функция есть для RS485.
Mitrar вне форума  
Непрочитано 14.05.2010, 07:37  
mrKirill
Вид на жительство
 
Аватар для mrKirill
 
Регистрация: 12.04.2007
Сообщений: 339
Сказал спасибо: 2
Сказали Спасибо 34 раз(а) в 30 сообщении(ях)
mrKirill на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Сообщение от Mitrar Посмотреть сообщение
Фактически это RS485, подскажите какая функция есть для RS485.
Возьмите спец-микросхему, например ADM4851 (~50...60руб), и не заморачивайтесь. Подключаете ее к UART (RX/TX) + 1 вывод на управление направлением (прием/передача) и все! Дальше все намного проще, программно Вы фактически работать будете с UART.
__________________
Гидравлика + электроника = POWER
mrKirill вне форума  
Непрочитано 14.05.2010, 11:40  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 140
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Re: Последовательный вывод данных

можно еще из серии MAX485---487 стоит копейки, во во и неморочить людям голову, а програмно без дополнительной схемы реолизовать всеравно несможите
vvkka вне форума  
Непрочитано 14.05.2010, 11:57  
Mitrar
Частый гость
 
Регистрация: 25.05.2007
Сообщений: 37
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
Mitrar на пути к лучшему
По умолчанию Re: Последовательный вывод данных

Да, вы правы max485 как раз должен подойти. Буду разбираться дальше. Спасибо что ответили.
Mitrar вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МК51 последовательный порт SerGO_83 Микроконтроллеры, АЦП, память и т.д 21 04.12.2010 00:14
AVR USART+прерывания=потеря данных umgah Микроконтроллеры, АЦП, память и т.д 54 10.04.2010 16:22
[Решено] Помогите определить семисегментник opylk Информация по радиокомпонентам 3 18.03.2010 19:38
[Решено] Может кто-то знает, аналоги данных оптопар vovan003 Информация по радиокомпонентам 4 12.03.2010 11:45
Радиокалькулятор ColorAndCode 9.3 optima22 Информация по радиокомпонентам 0 10.11.2009 11:01


Часовой пояс GMT +4, время: 11:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.