реклама на сайте
подробности

 
 
17 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Микроконтроллеры для начинающих, AVR, PIC, FUJITSU
марат
сообщение Jun 30 2008, 16:44
Сообщение #76





Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655



Добрый вечер. Подскажите пожалуйста, Как сделать секундомер на ATmega103 длительностью до 5 минут на Code VisionAVR C ?

Заранее большое спасибо!!
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 1 2008, 08:04
Сообщение #77


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 марат - вам нужно в интерупте по таймеру инкрементировать дабл например (если дискретность таймера маленькая -2х байт может не хватить ) - зная период таймера легко вычислить какое значение дабла будет по прошествию 5 минут wink.gif
Go to the top of the page
 
+Quote Post
марат
сообщение Jul 1 2008, 14:12
Сообщение #78





Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655



Алгоритм и структурная схема находятся тут : http://electronix.ru/forum/index.php?showt...mp;#entry433443
Go to the top of the page
 
+Quote Post
Tiny
сообщение Jul 13 2008, 09:21
Сообщение #79


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720



Такой вопрос.
CodeVision, пример из пакета \cvavreval\examples\DS1820
Термометр с использованием Dallas Semiconductor DS1820, кварц 3.6864MHz
В программе используются библиотеки для работы с DS1820. Насколько я поинмаю, для обработки получаемых данных от DS1820 нужны определенные интервалы времени.
Я сделал проектик на Mega 16. Такого кварца у меня нет. Есть 4МГц, 4,5МГц и выше. Внутренние частоты МК - 1, 2, 4, 8. Попробывал в Протеусе симуляцию на 4 МГц. Работает. Но в реальном устройстве - нет.
Попробывал подключить внешнюю RC-цепь (4,2К 22пФ), выставив соответсвующие фюзы. Опять же на индикаторах ерунда.
Есть ли выход из данного положения? Можно ли обойтись без кварца на 3.6864MHz?
Go to the top of the page
 
+Quote Post
Tiny
сообщение Jul 13 2008, 18:01
Сообщение #80


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720



Разобрался. Забыл проинвертировать управление транзисторами, которые коммутируют сегменты. Работает и от внутреннего 4МГц и от внешней RC цепи.
Go to the top of the page
 
+Quote Post
DeVOuR
сообщение Jul 24 2008, 19:08
Сообщение #81


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 23-07-08
Пользователь №: 39 171



простенькй вопросик)

Первая моя прога на АТмелах. Атмега8.

последоательный порт (USART). принцип приема с прерыванием каков?

Система такова:
1. прием определенного байта, который соотв. 1му из 3х определенных последующих действий мк.
а) выслать по юарт одни данные
б) выслать по юарт другие данные
в) приготовится принять данные

с передачей проблемм нет, а как организовать прием?
я пока что сделал так:
1. принимается байт - срабатывает прерывание - прерываемся - смотрим, какой байт получили - переходим к нужной проце - и тут же, не выходя из прерывания всю процу и выполняем.
с трансмиттом то так и будет, а вот с приемом номально? или все же следует както организовать прерывания таким образом, чтобы выходить из него после каждого принятого байта?

спс за ответ.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 25 2008, 09:35
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Приём/передача по прерываниям.
При чём лучше передавать пакетом данные - тогда разбор полётов можно засунуть сразу в прерывание + ошибок меньше будет в зашумлённых условиях.
Работа приблизительно такова - в ресив интерупте декодировался пакет -> есть комманада и данные - тогда выставляем определённый семафор и системный манагер (можна на таймер какой либо прицепить) по наступлению тика обрабатывает нужный запрос.
Передача - забиваете в буффер данные и кол-во для передачи - выставляете флаок и пошли интерупты клацать wink.gif
Go to the top of the page
 
+Quote Post
DeVOuR
сообщение Jul 25 2008, 18:27
Сообщение #83


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 23-07-08
Пользователь №: 39 171



Kuzmi4,
спасибо.
передачу переделал на пакетную, прием тоже сделал красиво.
в симуляторе работает как часики..
надо дописать ПО под виндоз, тогда посмотрим, че там получится)


и, есть ли смысл считать контрольную сумму? или это все зависит от частот и скоростей?
Go to the top of the page
 
+Quote Post
bureau
сообщение Jul 26 2008, 11:00
Сообщение #84


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



2 DeVOuR - вё зависит от зашумлённости среды в которой будет идти провод smile.gif
Go to the top of the page
 
+Quote Post
OlegH
сообщение Aug 15 2008, 21:37
Сообщение #85


Частый гость
**

Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168



Цитата(bureau @ Jul 26 2008, 14:00) *
2 DeVOuR - вё зависит от зашумлённости среды в которой будет идти провод smile.gif


Мне так видится, все зависит прежде всего от тяжести последствий приема и обработки искаженного пакета smile.gif Потому что вероятность приема искаженных данных существует всегда (и причины могут быть самые разные). Особенно если одной из обменивающихся сторон является ПК с виндой smile.gif
Фактически, в протоколе обмена типа "пакет запроса - пакет ответа" контрольные суммы нужны всегда.
Во избежание пусть очень редко случающихся, но весьма неприятных и непредсказуемых глюков smile.gif Даже простая арифметическая сумма или XOR байт пакета куда лучше чем ничего.
Ну а по-правильному - CRC8, CRC16 или CRC32 в зависимости от длин пакета и предполагаемой вероятности искажения данных. В качестве прикидки (где-то когда-то что-то такое слышал): CRC16 в типичном канале с BER (Bit Error Rate - вероятностью приема сбойного бита) = 10^-3 (один на тысячу) гарантирует обнаружение ошибки в пакетах с длиной, ограниченной на уровне 256 байт.

Сообщение отредактировал Олег Хохлов - Aug 15 2008, 21:43
Go to the top of the page
 
+Quote Post
Integral
сообщение Aug 16 2008, 03:27
Сообщение #86


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Для работы от внешнего кварца снял все галки CKSELn. Другие галки не трогал. Поставил внешний кварц. После чего МК перестал отвечать програматору. В чем проблема? может нужно было еще какието фьюзы поменять? Как теперь запустить МК? (мега16)

Кажется я понял в чем проблема.... по дефолту CKSELn=0001. А в моей проге для програматора по дефолту стояла только 1 галка в CKSELn, соотвецтвенно в этой проге идет наоборот.... галка - 1, нету галки - 0.
Таким образом получилось у мну CKSELn=0000. angry.gif

Как запустить теперь МК и выставить фьюзы как положено?

Сообщение отредактировал Integral - Aug 16 2008, 03:32
Go to the top of the page
 
+Quote Post
SSerge
сообщение Aug 16 2008, 12:18
Сообщение #87


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Integral @ Aug 16 2008, 10:27) *
Как запустить теперь МК и выставить фьюзы как положено?

Подать на МК внешний клок от любого источника.
При использовании адаптеров типа STK200/300 или Altera ByteBlaster клок можно генерить самим адаптером, если, конечно, программа программатора это умеет.
Например AvReal умеет.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Integral
сообщение Aug 16 2008, 13:31
Сообщение #88


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Будем пробывать... на К155ЛА3 генератор склипаю...
Частота порядка 100КГц - 1МГц покатит?
Go to the top of the page
 
+Quote Post
SSerge
сообщение Aug 17 2008, 21:45
Сообщение #89


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Integral @ Aug 16 2008, 20:31) *
Будем пробывать... на К155ЛА3 генератор склипаю...
Частота порядка 100КГц - 1МГц покатит?

Должно при одном условии. Частота тактирования процессора должна быть в несколько раз выше частоты сигнала SCK при программировании.

конкретно для Мега16:
Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods
for the serial clock (SCK) input are defined as follows:
Low:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz
High:> аналогично.

т.е. низкий и высокий уровень на ноге SCK должны удерживаться не менее 2 (или даже 3) периодов тактирования процессора.
Быстрее одного раза за микросекунду порт принтера обычно не переключается, так что частоты от 2МГц точно хватит, немного более низкой - скорее всего хватит.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Integral
сообщение Aug 17 2008, 21:52
Сообщение #90


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



заработал на частоте 1.6МГц, програмируется у меня через СОМ порт.

Удивительно то что при напряжении 12В которое подавалось на питание МК около 30сек. он не накрылся... 07.gif (сгорел сволочь стабилизатор 7805)
Go to the top of the page
 
+Quote Post

17 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 15:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.03034 секунд с 7
ELECTRONIX ©2004-2016