Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по CodeVisionAVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
wwweider
есть такая минюшка -- коде CodeWizard там вроде бы и нужно менять частоту я меняю, но светодиод быстрее не стал моргать. атмега16+программка

горит диод,
пауза на пустом цикле,
погас диод.



интересует как задавать частоту от внутреннего и от внешнего рц генератора.
Палыч
Wizard генерит правильную программу для указанной частоты. Переключение внутренний RC-генератор/внешний кварц устанавливаются программированием fuses микроконтроллера. Это, конечно, если вопрос был об этом...

Р.S. Поправочка: Wizard генерит правильный исходный текст программы для работы устройств микроконтроллера, который (текст) Вы можите использовать.
Polaris
Цитата(wwweider @ Apr 10 2008, 12:52) *
есть такая минюшка -- коде CodeWizard там вроде бы и нужно менять частоту я меняю, но светодиод быстрее не стал моргать. атмега16+программка

горит диод,
пауза на пустом цикле,
погас диод.
интересует как задавать частоту от внутреннего и от внешнего рц генератора.

В менюшке частота меняется исключительно для расчета пауз для функций задержки (delay_ms) и, грубо говоря, для расчета внутренних частот там, где они нужны (UART, ADC, таймеры, SPI). Частота же реальная задается кварцем, фьюзами, регистром настройки внутреннего осциллятора - зависит от режима работы и конкретной модели микроконтроллера. Предыдущий товарищ уже говорил об этом.
wwweider
где взять фьюзы? в дш нету(
Abckur
Цитата(wwweider @ Apr 11 2008, 17:39) *
где взять фьюзы? в дш нету(


Именно в даташите они и описаны - номера таблиц там и пример - http://tinyurl.com/ypslqk

Fuse биты AVR - скриншоты установок фьюзов AVR - лучше один раз увидеть.
wwweider
интересно как люди раньше жили когда авр123 небыло? нехочу я лазить по этой свалке.

спасибо всем, сейчас скачал другой дш, а тот какойто укороченый, подстава вобщим(((

я непонял для чего BOOTSZ фуз
Палыч
BOOTSZ - длина области памяти, отводимая для Boot Loader'а. Если свой Boot Loader не впихиваете в контроллер, то и не замарачивайтесь.
wwweider
спасибо,
теперь такая ситуация.
вывожу на ножку порта а 1 и 0 по очереди...

и что я вижу на осцилографе.. частоту в 8-10 раз меньшую чем я задаю фузами.. а я думал увижу на ноге частоту кварца 1-8мГц.
атмел вроде уверяют что у них за 1 такт одна команда выполняется!
а а получается за 8 тактов(((
Палыч
Ну - не каждая команда. В даташите есть раздел Instruction Set Summary. в таблице графа - #Clocks. Но, даже если бы и 1 такт - то частота была бы не более F/2. Реально же
OUT =1 - 1 такт
OUT =0 - 1 такт
JMP - 2 такта
итого минимум 4 такта.
defunct
Цитата(wwweider @ Apr 11 2008, 16:55) *
атмел вроде уверяют что у них за 1 такт одна команда выполняется!

Да, так и есть. Большинство команд за один такт и выполняется.

Цитата
а а получается за 8 тактов(((

Громкие заявления делать не нужно. 99% ошибок - из-за невнимательности.
Перепроверьте свою программу и настройки фузов.
Среди фузов есть такой, который отвечает за деление частоты на 8.
GDI
Цитата
Среди фузов есть такой, который отвечает за деление частоты на 8

В атмега16 нет такого фьюза.
Цитата
и что я вижу на осцилографе.. частоту в 8-10 раз меньшую чем я задаю фузами.. а я думал увижу на ноге частоту кварца 1-8мГц.

А вы посмотрите ассемблерный листинг который вам сгенерил Кодевижон, там видно какими командами он это сделал и можно прикинуть время выполнения программы, а еще можете попробовать применить оптимизацию по скорости.
wwweider
подскажите как поставить фьюзы для работы уонтроллера на 16МГц с внешним кварцевым резонатором, я припаял 16МГЦ-вый правильно?
Axxel
Цитата(wwweider @ Apr 14 2008, 12:58) *
подскажите как поставить фьюзы для работы уонтроллера на 16МГц

Это фьюзы CLKSEL 0...3 и CKPOT.
Страницы 23 и 24 в ДШ
GDI
Точные значения надо смотреть в ДШ, но на память скажу, вроде надо все галочки CKSEL в кодевижоне поставить(по умолчанию они все сняты, т.е. настроено на внешний генератор - не вздумайте прошить те что там стоят изначально)
wwweider
да я это понимаю всё дш читал. но точных данных там не нашёл.
Axxel
Цитата(wwweider @ Apr 14 2008, 14:33) *
точных данных там не нашёл.

А это?
wwweider
поставил все галочки CKSEL
при первой попытке прошить выдал ошибку
потом першил как были галочки назад заработало
потом поставил опять все галочки прошилось но теперь больше не прошивается!(

да видел я эту таблицу, там опытным путём чтоли одну из трёх комбинаций ставить)
Axxel
Цитата(wwweider @ Apr 14 2008, 14:56) *
да видел я эту таблицу, там опытным путём чтоли одну из трёх комбинаций ставить)

Вот так и про CKOPT не забудьте, и про "0"-programmed, "1"-unprogrammed
В общем не должно у вас птичек там стоять ни в CKSEL, ни в CKOPT
wwweider
поставил, плюс ещё в паралельном програматоре бит spien выставил.
всё заработало но!
кварц поставил 16 мГц, программа:
while(1)
{
PORTA.1=!PORTA.1;

}
выдаёт 1МГц на ножке, что то нето? хотябы 4-8 увидеть бы. получается конроллер неработает на 16 мег? в даташите я вообще понял чтобы на 16 частоту выставить нужно внешний генератор?
vet
смотрите ассемблерный листинг, считайте время выполнения всех команд цикла, исходя из известного числа тактов на каждую.
Палыч
Цитата(wwweider @ Apr 16 2008, 10:03) *
кварц поставил 16 мГц, ... выдаёт 1МГц на ножке, что то нето? хотябы 4-8 увидеть бы.
Хороший результат! Ваш цикл выполняется всего за 8 тактов. Зачем Вам 4-8 МГц частота? Просто - хочется? Какая конечная цель (задача)? Может, микроконтроллер для Вашей задачи не подходит...
wwweider
ну если хороший тогда ладно я спокоен) хотел убедится что выставил на 16мГц

задача брать данные с ацп и писать на флешку по spi желаельно не менее 100кБитперсек

или может другой шустрый процессор посоветуете? что бы я его стк200 мог запрограмить и корпус дип обязательно! люблю сам паять.
vet
в любой меге есть аппаратный SPI, работающий на половине тактовой частоты. АЦП - тоже почти во всех.
GDI
Цитата
хотел убедится что выставил на 16мГц

Осциллографом посмотрите частоту на кварцевом резонаторе, если бы вы работали от внутреннего генератора, как мега настроена по-умолчанию, то генерации на кварце не было бы.
Цитата
может другой шустрый процессор посоветуете? что бы я его стк200 мог запрограмить

посмотрите, например, на мега168, да и все новые меги работают на частотах до 20МГц
wwweider
не ну 16 и 20 мГерц небольшая разница, хотелось на парядок ускориться)

а насчёт посмотреть на кварце вообще проблемма осцилограф как то влияет на кварцевый резонатор что контроллер перестаёт работать, причём нетолько на моей схеме, вроде бы и заземление осцилографа убрал. не помогло.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.