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

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

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

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

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

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

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

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

Проблема при реализации софтового UART для pic12F675. Работаю на скорости 9600, соответственно задержка между битами данных 104 us. Какая должна быть задержка после выставления стоп-бита (при различных вариациях меняется отсылаемые данные), на терминале принимается полная фигня. Кому не сложно, подскажите, плиз, что я делаю не так.

void io_init()
{
TRISIO = 0b00000000;
GP4 = 0;
WPU4 = 0;
CMCON = 0x07;
ANSEL = 0x00;
}

void Soft_Uart_Init()
{
for (i = 0; i ‹ 8; i++)
{
__delay_us(104);
data1 = ((data ›› i) & 0x01);
if (data1 == 0x01)
{
GP4 = 0;
}
else
{
GP4 = 1;
}
}
}

void main (void)
{
io_init();
while(1)
{
data = 0x21;
GP4 = 1; // Start Bit
Soft_Uart_Init();
GP4 = 0; // Stop Bit
__delay_ms(1000);
//eewrite();
//test_port();
}
}
Реклама:
Fair88Play вне форума  
Сказали "Спасибо" Fair88Play
warel (29.06.2019)
Непрочитано 28.05.2012, 16:50  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Ну кто же так коды выкладывает? Глаза сломать можно.
Вы знаете, сколько тактов занимает ваша строчка GP4=1?
На какой частоте работает контроллер?
Сколько тактов занимает data1 = ((data ›› i) & 0x01); ?
И откуда эта жуть?
if (data1 == 0x01)
И какой у вас компилятор?
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 28.05.2012, 16:56  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Контроллер pic12F675 работает на частоте 4 Мгц от внутреннего генератора, сколько тактов занимает сказать не могу, поскольку очень плохо шарю, только разбираюсь, если подскажите как узнать, буду очень признателен. За выложенный код извиняюсь, пишу здесь первый раз, поэтому не знаю как выложить нормально. А жуть if (data1 == 0x01) проверяю какое значение выставлять на линию (0 или 1), или я не правильно пишу?
Компилятор Hi-TECH ANSI C Compiler
Fair88Play вне форума  
Сказали "Спасибо" Fair88Play
warel (29.06.2019)
Непрочитано 28.05.2012, 17:44  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Вообще то, start_bit=0, а stop_bit=1, у Вас же наоборот.
Ну и естественно, надо изменить начальную инициализацию GP4 на обратную.

Последний раз редактировалось nonamedov; 28.05.2012 в 18:37.
nonamedov вне форума  
Сказали "Спасибо" nonamedov
warel (29.06.2019)
Непрочитано 28.05.2012, 18:02  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

http://www.microchip.su/showpost.php...2&postcount=31
st__1 вне форума  
Сказали "Спасибо" st__1
warel (29.06.2019)
Непрочитано 28.05.2012, 19:20  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Сообщение от Fair88Play Посмотреть сообщение
сколько тактов занимает сказать не могу
Для этого нужно знать ассемблер и внутреннее устройство контроллера.
Каждая инструкция (за исключением инструкций перехода и проверки бит) выполняется на 4 такта осциллятора. Инструкции перехода выполняются за 8 тактов.
Если частота осциллятора 4 МГц, то одна инструкция будет выполняться за 1 мкс. Это инструкции микроконтроллера. А вот в Си одной строкой может быть выполнено несколько инструкций.

Последний раз редактировалось Bumbarra; 28.05.2012 в 20:25.
Bumbarra вне форума  
Сказали "Спасибо" Bumbarra
warel (29.06.2019)
Непрочитано 28.05.2012, 20:09  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Fair88Play, Вам лень считать и разбираться ?
Hi Tech явно не для вас .
CCS и все заработает ...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (29.06.2019)
Непрочитано 28.05.2012, 20:41  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Сообщение от Bumbarra Посмотреть сообщение
А вот в Си одной строкой может быть выполнено несколько инструкций.
Это ж насколько СИ быстрее АСМа!!!
st__1 вне форума  
Сказали "Спасибо" st__1
warel (29.06.2019)
Непрочитано 28.05.2012, 22:50  
Fair88Play
Временная регистрация
 
Регистрация: 28.05.2012
Сообщений: 51
Сказал спасибо: 0
Сказали Спасибо 32 раз(а) в 32 сообщении(ях)
Fair88Play на пути к лучшему
По умолчанию Re: Софтовый UART для PIC12F675

Сообщение от dosikus Посмотреть сообщение
Fair88Play, Вам лень считать и разбираться ?
Hi Tech явно не для вас .
CCS и все заработает ...
Да нет, не лень, просто до этого никогда не сталкивался. Всем большое спасибо за ответы!
Fair88Play вне форума  
Сказали "Спасибо" Fair88Play
warel (29.06.2019)
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль UART-WiFi сколько нужно штук для соединения с ноутом tipman Автоматика и аппаратура связи 6 01.03.2012 22:58
Обвязка PIC12F675 zenekk Микроконтроллеры, АЦП, память и т.д 2 08.05.2011 09:13
Ищу пример uart для mega в codevision code-by Микроконтроллеры, АЦП, память и т.д 2 04.01.2011 12:20
Симуляция UART для AVR studio mm12345 Микроконтроллеры, АЦП, память и т.д 0 22.11.2010 15:40
pic12f675 Faworit Микроконтроллеры, АЦП, память и т.д 27 01.06.2007 17:51


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


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