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

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

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

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

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

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

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

 
Опции темы
Непрочитано 20.06.2012, 11:26  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Fair88Play Посмотреть сообщение
#pragma vector = TIM0_OVF_vect
это директива, определяющая праграмму обработчика прерывания по переполнения таймера 0, т.е. void interrupt TimerOvf(void), а как это в Вашем случае, зависит от компилятора.
Сообщение от Fair88Play Посмотреть сообщение
#define RX_DDRX TRISIO
Имейте ввиду, что в AVR порты настраиваются иначе чем в PIC, точнее наоборот, к тому же, чтобы избежать путаницы, да и просто для приличия, хорошо бы Вам поменять названия связанные с регистрами AVR(DDRx :1-выход, 0- вход) на PIC (TRIS: 1 -вход, 0- выход).
Реклама:
nonamedov вне форума  
Непрочитано 20.06.2012, 11:38  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от nonamedov Посмотреть сообщение
Имейте ввиду, что в AVR порты настраиваются иначе чем в PIC, точнее наоборот, к тому же, чтобы избежать путаницы, да и просто для приличия, хорошо бы Вам поменять названия связанные с регистрами AVR(DDRx :1-выход, 0- вход) на PIC (TRIS: 1 -вход, 0- выход).
Спасибо за ответ, это я в курсе, просто значит не правильно изложил свой вопрос. В AVR 3 регистра: PORTx, DDRx и PINx, а у Пика 2: TRISIO и GPIO, поэтому и возник вопрос, правильно ли я их определил.

"Далее я сделал проект в IAR`е, подключил к нему полученную «либу» программного UART`а и написал пару строк кода для проверки результатов" - как подключается? В source files вторым Сишным файлом?

P.S. Извините за детские вопросы
Fair88Play вне форума  
Непрочитано 20.06.2012, 12:28  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Fair88Play Посмотреть сообщение
Согласен, что почти ничего не понимаю, и поэтому хочу разобраться! Когда спрашивал, как организовать приемник, мне дали пример, типа сиди и разбирайся, что я и делаю, что не понятно, спрашиваю здесь же, что в этом плохого?
Так вам нужен программный приемник или аппаратный? Программный - сидите в цикле, ждете, когда придет стартовый бит. По перепаду фронта начинаете захватывать дынне через определенный промежуток времени, зависящий от частоты передачи.
Easyrider83 вне форума  
Непрочитано 20.06.2012, 12:29  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Программный приемник по UART

1. Да.
2. Сделайте свой заголовочный файл (softUart.h) и подключите его в основной программе (директива #include), заодно и скопируйте файл библиотеки (uart.c) в проектную папку.
nonamedov вне форума  
Непрочитано 20.06.2012, 12:58  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Easyrider83 Посмотреть сообщение
Так вам нужен программный приемник или аппаратный? Программный - сидите в цикле, ждете, когда придет стартовый бит. По перепаду фронта начинаете захватывать дынне через определенный промежуток времени, зависящий от частоты передачи.
Мне нужен программный приемник, так как в pic12f675 нет аппаратного.
На программный приемник дали пример, с которым я сейчас и пытаюсь разобраться. Спасибо за ответы, буду дальше пыхтеть-разбираться
Fair88Play вне форума  
Непрочитано 20.06.2012, 14:02  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Программный приемник по UART

Подскажите, пожалуйста, где я накосячил?
Миниатюры:
Нажмите на изображение для увеличения
Название: Ошибка.JPG
Просмотров: 57
Размер:	291.5 Кб
ID:	35974  
Fair88Play вне форума  
Непрочитано 20.06.2012, 14:11  
Picman
Прописка
 
Регистрация: 29.06.2005
Сообщений: 153
Сказал спасибо: 111
Сказали Спасибо 46 раз(а) в 32 сообщении(ях)
Picman на пути к лучшему
По умолчанию Re: Программный приемник по UART

Как-то так. Для приема можно использовать вывод MCLR с прерыванием по изменению состояния входа.
/************************************************** ********************
Функция приема данных
Возвращает FF при ошибке стартового бита.
************************************************** ********************/
unsigned char RS45Rx (void)
{
#define Bit 0x5E
#define Half_Bit 0x30
unsigned char Rcv_byte =0;
unsigned char count ;
DelayUs(Half_Bit);
if (Bit_Rxd) //Старт-бит?
return (0xFF); //Нет.

for(count=8;count›0;count--) //Да!
{
Rcv_byte ››=1;
DelayUs(Bit);
if (Bit_Rxd){
Rcv_byte = (Rcv_byte | 0x80);
}
}
DelayUs(Bit); //Ждем стоп-бит
return (Rcv_byte);
}
Picman вне форума  
Непрочитано 20.06.2012, 15:18  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Picman Посмотреть сообщение
Как-то так. Для приема можно использовать вывод MCLR с прерыванием по изменению состояния входа.
/************************************************** ********************
Функция приема данных
Возвращает FF при ошибке стартового бита.
************************************************** ********************/
unsigned char RS45Rx (void)
{
#define Bit 0x5E
#define Half_Bit 0x30
unsigned char Rcv_byte =0;
unsigned char count ;
DelayUs(Half_Bit);
if (Bit_Rxd) //Старт-бит?
return (0xFF); //Нет.

for(count=8;count›0;count--) //Да!
{
Rcv_byte ››=1;
DelayUs(Bit);
if (Bit_Rxd){
Rcv_byte = (Rcv_byte | 0x80);
}
}
DelayUs(Bit); //Ждем стоп-бит
return (Rcv_byte);
}
А что здесь подразумевается под Bit_Rxd? И почему Bit = 0x5E, а Half_Bit = 0x30?
Fair88Play вне форума  
Непрочитано 20.06.2012, 16:04  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Программный приемник по UART

BitRxd - длительность передачи одного бита в микросекундах. Half_bit - половина битового интервала. После приема стартового бита нужно выждать 1,5 битовых интервала, чтобы данные считывались в момент, когда нет изменений входного сигнала.
Возможно автор откорректировал значение задержки с учетом расхода времени на выполнение команд чтения порта и сдвига принимаемых данных
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 20.06.2012 в 16:06.
MisterDi вне форума  
Непрочитано 20.06.2012, 16:14  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Программный приемник по UART

Всем большое спасибо, криво-косо, но все таки как-то реализовал
Fair88Play вне форума  
 

Закладки

Метки
важно
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программный пакет NUMERI alvadep Делимся опытом 0 14.11.2011 13:28
Программный декодер шины LIN double_dash Микроконтроллеры, АЦП, память и т.д 0 23.09.2011 10:20
Программный watchdog alexgap Микроконтроллеры, АЦП, память и т.д 8 31.10.2010 12:38
Программный сброс в мега под IAR maxik_k42 Микроконтроллеры, АЦП, память и т.д 10 13.09.2010 19:16
Опрос АЦП через программный SPI AVR Iamuser Микроконтроллеры, АЦП, память и т.д 8 23.03.2007 18:33


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot