|
|
  |
Микроконтроллеры для начинающих, AVR, PIC, FUJITSU |
|
|
|
Jun 30 2008, 16:44
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655

|
Добрый вечер. Подскажите пожалуйста, Как сделать секундомер на ATmega103 длительностью до 5 минут на Code VisionAVR C ?
Заранее большое спасибо!!
|
|
|
|
|
Jul 1 2008, 14:12
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655

|
|
|
|
|
|
Jul 13 2008, 09:21
|
Частый гость
 
Группа: Участник
Сообщений: 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?
|
|
|
|
|
Jul 24 2008, 19:08
|
Участник

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

|
простенькй вопросик)
Первая моя прога на АТмелах. Атмега8.
последоательный порт (USART). принцип приема с прерыванием каков?
Система такова: 1. прием определенного байта, который соотв. 1му из 3х определенных последующих действий мк. а) выслать по юарт одни данные б) выслать по юарт другие данные в) приготовится принять данные
с передачей проблемм нет, а как организовать прием? я пока что сделал так: 1. принимается байт - срабатывает прерывание - прерываемся - смотрим, какой байт получили - переходим к нужной проце - и тут же, не выходя из прерывания всю процу и выполняем. с трансмиттом то так и будет, а вот с приемом номально? или все же следует както организовать прерывания таким образом, чтобы выходить из него после каждого принятого байта?
спс за ответ.
|
|
|
|
|
Jul 25 2008, 18:27
|
Участник

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

|
Kuzmi4, спасибо. передачу переделал на пакетную, прием тоже сделал красиво. в симуляторе работает как часики.. надо дописать ПО под виндоз, тогда посмотрим, че там получится)
и, есть ли смысл считать контрольную сумму? или это все зависит от частот и скоростей?
|
|
|
|
|
Aug 15 2008, 21:37
|

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

|
Цитата(bureau @ Jul 26 2008, 14:00)  2 DeVOuR - вё зависит от зашумлённости среды в которой будет идти провод  Мне так видится, все зависит прежде всего от тяжести последствий приема и обработки искаженного пакета  Потому что вероятность приема искаженных данных существует всегда (и причины могут быть самые разные). Особенно если одной из обменивающихся сторон является ПК с виндой  Фактически, в протоколе обмена типа "пакет запроса - пакет ответа" контрольные суммы нужны всегда. Во избежание пусть очень редко случающихся, но весьма неприятных и непредсказуемых глюков  Даже простая арифметическая сумма или XOR байт пакета куда лучше чем ничего. Ну а по-правильному - CRC8, CRC16 или CRC32 в зависимости от длин пакета и предполагаемой вероятности искажения данных. В качестве прикидки (где-то когда-то что-то такое слышал): CRC16 в типичном канале с BER (Bit Error Rate - вероятностью приема сбойного бита) = 10^-3 (один на тысячу) гарантирует обнаружение ошибки в пакетах с длиной, ограниченной на уровне 256 байт.
Сообщение отредактировал Олег Хохлов - Aug 15 2008, 21:43
|
|
|
|
|
Aug 16 2008, 03:27
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Для работы от внешнего кварца снял все галки CKSELn. Другие галки не трогал. Поставил внешний кварц. После чего МК перестал отвечать програматору. В чем проблема? может нужно было еще какието фьюзы поменять? Как теперь запустить МК? (мега16) Кажется я понял в чем проблема.... по дефолту CKSELn=0001. А в моей проге для програматора по дефолту стояла только 1 галка в CKSELn, соотвецтвенно в этой проге идет наоборот.... галка - 1, нету галки - 0. Таким образом получилось у мну CKSELn=0000. Как запустить теперь МК и выставить фьюзы как положено?
Сообщение отредактировал Integral - Aug 16 2008, 03:32
|
|
|
|
|
Aug 16 2008, 12:18
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Aug 17 2008, 21:45
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Aug 17 2008, 21:52
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
заработал на частоте 1.6МГц, програмируется у меня через СОМ порт. Удивительно то что при напряжении 12В которое подавалось на питание МК около 30сек. он не накрылся...  (сгорел сволочь стабилизатор 7805)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|