.

Здравствуйте, гость ( Вход | Регистрация )

Блоки питания, зарядки для ноутбуков любых моделей
 
Ответить в данную темуНачать новую тему
Генератор импульсов на Attiny2313
kservice
сообщение 10.5.2008, 23:44
Сообщение #1


Новичок (>5)
*

Группа: Новичок
Сообщений: 6
Регистрация: 8.5.2008
Пользователь №: 11329



С целью изучения микроконтроллеров и заодно и решения практических проблем взялся за создание генератора импульсов на Attiny 2313. Выбрал 2313 из-за того, что у меня есть живой генератор на этом МК, однако его работа меня устраивает. В упрощенном виде задача звучит так: при включении питания частота на выходе должна плавно возрастать от 0 до 3-5 кГц и после этого стабилизироваться. Как сказал мне один действительно умный человек - задача плевая, но у меня она никак не решается, уже закипают мозги. Поэтому прошу помощи и совета. В приложении есть проект для AVR Studio 4.14, CodeVisionAVR 1.25.9 и VMLab 3.12. Знаю о том, что VMLab не поддерживает Attiny 2313, позтому пошел на уловки и ему указываю AT90S2313. Поскольку эти МК очень близки, то, на мой взгляд, обман проходит. Чтобу убедиться в этом, я выполнял на нем для проверки другие программы, взятые из книг Белова, и все работало. Проблема состоит в том, что , во-первых, VMLab постоянно предупреждает , что Watchdog сделает сброс, а во-вторых, при задержке в 2 мсек видно, что идет нарастание частоты, при 0,2 мсек генерация на какое-то время пропадает, а потом идет. В общем, не могу сам понять в чем проблема. Очень рассчитываю на вашу помощь.

Прикрепленный файл  prog81.rar ( 18,4 килобайт ) Кол-во скачиваний: 48
Перейти в начало страницы
 
+Цитировать сообщение
retaler
сообщение 11.5.2008, 0:39
Сообщение #2


Живет здесь... (>100)
***

Группа: Пользователи
Сообщений: 159
Регистрация: 1.11.2007
Из: Киев
Пользователь №: 8075



AT90S2313 уже не выпускается, даже учиться на нем нежелательно.
В Attiny2313 есть режим CTC для таймера 1 (16bit Timer/Counter1) - генератор меандра с разными частотами.
Нужно просчитать все делители и правильно настроить таймер.
Далее создать програмный цикл, или на таймере 0, и засылать числа с таймера или из таблицы в регистр OC1 (более точно- по даташиту) таймера 1.
Но как это реализовать на Си понятия не имею.
/ret/
Перейти в начало страницы
 
+Цитировать сообщение
kservice
сообщение 11.5.2008, 8:27
Сообщение #3


Новичок (>5)
*

Группа: Новичок
Сообщений: 6
Регистрация: 8.5.2008
Пользователь №: 11329



Речь и идет об Attiny 2313, а строкой TCCR1B=0x0A;//Установка режима CTC с коэфициентом деления 8 как раз и реализуется режим CTC. Числа зысылаются в регистр OCR1A
Перейти в начало страницы
 
+Цитировать сообщение
AndryG
сообщение 12.5.2008, 7:28
Сообщение #4


Старожил (>300)
****

Группа: Администраторы
Сообщений: 555
Регистрация: 24.7.2006
Из: Helios-3
Пользователь №: 573



Цитата
Проблема состоит в том, что , во-первых, VMLab постоянно предупреждает , что Watchdog сделает сброс
если ругань идет при старте программы, то это глюк CVAVR - в старт-файле не совсем правильно (с точки сзрения VMLAB) проходит работа с собакой. (могу ошибаться в причине, но помню, что меня заколупывали эти сообщения при старте .. после небольшой правки старт-файла CVAVR это безобразие исчезло.)
Цитата
при задержке в 2 мсек видно, что идет нарастание частоты, при 0,2 мсек генерация на какое-то время пропадает,
Может это глюк/"переходные процессы" отладчика? (не смотрел код, но слепо доверять подобным программам совсем не стоит)
Перейти в начало страницы
 
+Цитировать сообщение
kservice
сообщение 12.5.2008, 9:22
Сообщение #5


Новичок (>5)
*

Группа: Новичок
Сообщений: 6
Регистрация: 8.5.2008
Пользователь №: 11329



Цитата
Может это глюк/"переходные процессы" отладчика? (не смотрел код, но слепо доверять подобным программам совсем не стоит)

Был бы я специалистом - не обращался бы на форум. Ответы на свои вопросы рассчитываю получить от Вас.
Прикрепленный файл  prog81_screen.rar ( 129,49 килобайт ) Кол-во скачиваний: 17

Во вложении сообщение VMLab и картинки:
рис.1 срыв генерации
рис2. возобновление с непонятной частотой
рис.3 - это развернутый рис.2

Сообщение отредактировал kservice - 12.5.2008, 9:22
Перейти в начало страницы
 
+Цитировать сообщение
AndryG
сообщение 14.5.2008, 7:51
Сообщение #6


Старожил (>300)
****

Группа: Администраторы
Сообщений: 555
Регистрация: 24.7.2006
Из: Helios-3
Пользователь №: 573



Судя по самой первой картинке ... Вы "плохо прикидываетесь AT90S2313" - выполняются инструкции (там где форбиден), которые специфичны для Tiny2313.

Плюс у Вас срабатывает "собака" -- строка в которой говорится, что сработала собака и нужно вызывать ее сброс до этой строки.

В итоге:
приложение некритичное - выключайте собаку нафиг в самом начале программы; (99% это причина вашей "пропало, а потом появилось" - просто идет перезапуск контроллера)
для красоты и окончательной достоверности отладки ... смотрите по коду ... какие новые регистры контроллера Вы трогаете ... я для такой отладки (пишу под один камень - отлаживаю на другом) использую условную компиляцию - и часть "мешающего" отладке кода отключаю.
Перейти в начало страницы
 
+Цитировать сообщение
AndryG
сообщение 17.5.2008, 8:20
Сообщение #7


Старожил (>300)
****

Группа: Администраторы
Сообщений: 555
Регистрация: 24.7.2006
Из: Helios-3
Пользователь №: 573



Поругаться? -> « Ссылка »
Поговорить? -> можно здесь
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





>  Реклама

RSS Текстовая версия Сейчас: 21.11.2014, 19:24