Форум по разработке и ремонту электронной техники Киевский форум радиолюбителей и электронщиков. Форумы по разработке и ремонту электронной техники
    Схемы электрические принципиальныеГлавная    ФорумФорум    ПоискПоиск по форуму    Личные сообщенияФайлообменник    Личные сообщенияРадиотехнический каталог   

Фотогалерея   <b>Профиль</b>Ваш профиль    Личные сообщенияЛичные сообщения    ГруппыГруппы   

FAQFAQ    РегистрацияРегистрация    ВходВход

Уважаемые посетители! Это старая версия форума. Новая версия находится по адресу: http://www.remexpert.com
Регистратор на PIC16F628A
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След.
 
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Форум по разработке и ремонту электронной техники -> Микроконтроллеры, процессоры, ПЛИС...
 
Автор Сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 06 Фев 2007, 10:39    Заголовок сообщения: Ответить с цитатой

urry писал(а):
красиво.. прям начало дипломной...


Я помню как сам начинал, около 8 лет электроникой не занимался вообще. С появлением потребности начал читать статьи в различной литературе, но сменилось поколение и очень тяжело было вникнуть в суть. Вот и пишу для начинающих.

urry писал(а):

а у меня такой вопрос - где-то описано минимальное расстояние между стоповым и стартовым битом ?


Книга хорошая была по интерфейсам. Длительность бита ты сам считал, стартовый (один) это переход с единицы в ноль длительностью в 1 бит, стоповый это всегда с нуля в единицу длительностью в 1 бит. Т.е. к 8 или 9 прибавляем 2. Насколько я сейчас понимаю стоповые с длительностью 1.5, 2 уже экзотика и нигде не принимается.

На модели посмотреть длительность можно например так.
Значком --> пометил новую стоку которую надо вставить в код, файл указан в начале листинга.

Код:

isr.c
   if((TXIE)&&(TXIF)){   
      TXREG = k_ps;
      TXIE = 0;//Запрещаем прерывание передатчика

-->           RA0= 1; //Подымаем бит для формирования окна передачи

      BITSET(sost,SOST1);//Признак посылки   
      }            // для передачи только 1 байта


Я не ожидаю в цикле окончания передачи, а периодически опрашиваю бит состояния передатчика
Код:

registrator.c

kv_tx(void) //Формирование посылки
{      /* Если передатчик занят выходим для выполнения
        *  другой работы
        */
   if (!TRMT) return ; //Ожидаем окончание передачи
   BITSET(syst,ST2);
   CCP1CON   = 0b00000000;//Выключаем ШИМ

-->    RA0= 0; //Сбрасываем бит  формирования окна передачи
}


Надеюсь ответил на все вопросы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
urry
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 23.10.2006
Сообщения: 243

СообщениеДобавлено: 06 Фев 2007, 11:03    Заголовок сообщения: Ответить с цитатой

яне о той длительности спрашивал - между байтами - конец одного и начало следующего .у меня глюк по приему пакета - пропускает байты ... так понимаю, что цепляется следующий за стоповым - стартовый - и уходит в ошибку кадра. Ошибку я не анализирую (пока). байты в пакете у меня идут практически подряд. об этой ошибке говорит то. что пропускаются внутри пакета 2 байта - а первые 2 байта всегда идут без ошибок. Буфер приема 2- х байтовый.
времени обработать прерывание приема у контроллера - много (1838 бод). Ну даже если было бы мало - что с того ? Это принимается без контроллера, на аппаратном уровне. Сегодня попробую чуть подвинуть стартовый и стоповый между собой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 06 Фев 2007, 11:12    Заголовок сообщения: Ответить с цитатой

urry писал(а):
у меня глюк по приему пакета - пропускает байты ... так понимаю, что цепляется следующий за стоповым - стартовый - и уходит в ошибку кадра. Ошибку я не анализирую (пока). байты в пакете у меня идут практически подряд. об этой ошибке говорит то. что пропускаются внутри пакета 2 байта - а первые 2 байта всегда идут без ошибок. Буфер приема 2- х байтовый.


Насколько я понял Это USART.

Когда я начинал работать с RS232, много провозился. Вопрос решился установкой компаратора на входе RX, т.е., для приема очень важны качественные фронты. Простой транзисторный ключ не проходит, проще логику поставить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
urry
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 23.10.2006
Сообщения: 243

СообщениеДобавлено: 06 Фев 2007, 11:31    Заголовок сообщения: Ответить с цитатой

ок. если пауза ничего не даст - тл2 или са3 попробую.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 06 Фев 2007, 12:41    Заголовок сообщения: Ответить с цитатой

urry писал(а):
ок. если пауза ничего не даст - тл2 или са3 попробую.


Думаю пауза это лишнее. Даже здесь у меня были проблемы с кадром, а передавал я по одному байту. Ошибка кадра это когда контроллер потерялся и не находит стопа.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
urry
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 23.10.2006
Сообщения: 243

СообщениеДобавлено: 06 Фев 2007, 12:43    Заголовок сообщения: Ответить с цитатой

я понимаю, что такое ошибка кадра. но ведь хотелось - с минимальными аппаратными затратами... как тема звучит
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 06 Фев 2007, 16:04    Заголовок сообщения: Ответить с цитатой

urry писал(а):
я понимаю, что такое ошибка кадра. но ведь хотелось - с минимальными аппаратными затратами... как тема звучит

Прошелся по воздуху, и мне пришло в голову, это ведь и ошибка скорости приема.
Надо учитывать посылая байт фактически уходит 10 бит, тут надо посмотреть, для расчета скорости.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
urry
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 23.10.2006
Сообщения: 243

СообщениеДобавлено: 06 Фев 2007, 21:04    Заголовок сообщения: Ответить с цитатой

2 раза пересчитывал ... да, дело было в расстояниях между байтами. Работает!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 07 Фев 2007, 11:45    Заголовок сообщения: Ответить с цитатой

urry писал(а):
2 раза пересчитывал ... да, дело было в расстояниях между байтами. Работает!


Поздравляю!, что важно еще скорости приема и передачи должны делится нацело, без остатка. При этом ошибок при приеме меньше будет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DL36
Живет здесь... (>100)
Живет здесь... (>100)


Зарегистрирован: 04.10.2006
Сообщения: 192
Откуда: Херсон

СообщениеДобавлено: 09 Фев 2007, 19:12    Заголовок сообщения: Ответить с цитатой

Степень надежности прибора всегда закладывается на этапе проектирования, то же можно сказать и о программе, а тем более о приборах с микроконтроллером. Микрочип в своих контроллерах применяет довольно развитую систему возможных сбросов. Анализ, типа сброса, позволит повысить надежность работы программы, а значит и прибора вцелом.

Компилятор «С» от Хайтека имеет множество зарегистрированных названий файлов, одно из них powerup.as. В этом файле описана стартовая процедура, которую компилятор поместит практически сразу после старта и до начала инициализации контроллера. Нет необходимости как-то указывать компилятору о наличии специальной стартовой процедуры, надо просто поместить указанный файл в папку с проектом. Данный файл обрабатывается специальным ассемблером, имеющим некоторые ограничения, но и стартовая процедура не должна быть большой.

Я бы всегда рекомендовал использовать средства предоставляемые контроллером, для повышения надежности устройства или, по крайней мере, уменьшить вред от неправильной работы прибора. Немаловажным фактором повышения скорости разработки так же является стартовая процедура. Как пример можно назвать типичную ситуацию, когда программа «потерялась» и живет своей только ей известной жизнью. Именно для таких случаев предусмотрен дежурный таймер.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Форум по разработке и ремонту электронной техники -> Микроконтроллеры, процессоры, ПЛИС... Часовой пояс: GMT + 2
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След.
Страница 4 из 10

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять вложения в этом форуме
Вы можете просматривать вложения в этом форуме


Rambler's Top100 PageRank Яндекс цитирования
Сайты наших друзей: Гири, все о гирях, Автоматизация магазинов, супермаркетов, ресторанов, кинотеатров,
Весы электронные, Сканеры штрих-кода, Принтеры штрих-кода

Powered by phpBB © 2001, 2005 phpBB Group

Время генерации страницы: 0.88s (PHP: 68% - SQL: 32%) - SQL запросов: 12 - GZIP enabled - Debug on