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

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

где взять фьюзы? в дш нету(
Именно в даташите они и описаны - номера таблиц там и пример -
http://tinyurl.com/ypslqkFuse биты AVR - скриншоты установок фьюзов AVR - лучше один раз увидеть.
wwweider
Apr 11 2008, 14:27
интересно как люди раньше жили когда авр123 небыло? нехочу я лазить по этой свалке.
спасибо всем, сейчас скачал другой дш, а тот какойто укороченый, подстава вобщим(((
я непонял для чего BOOTSZ фуз
BOOTSZ - длина области памяти, отводимая для Boot Loader'а. Если свой Boot Loader не впихиваете в контроллер, то и не замарачивайтесь.
wwweider
Apr 11 2008, 14:55
спасибо,
теперь такая ситуация.
вывожу на ножку порта а 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
Apr 11 2008, 22:17
Цитата(wwweider @ Apr 11 2008, 16:55)

атмел вроде уверяют что у них за 1 такт одна команда выполняется!
Да, так и есть. Большинство команд за один такт и выполняется.
Цитата
а а получается за 8 тактов(((
Громкие заявления делать не нужно. 99% ошибок - из-за невнимательности.
Перепроверьте свою программу и настройки фузов.
Среди фузов есть такой, который отвечает за деление частоты на 8.
Цитата
Среди фузов есть такой, который отвечает за деление частоты на 8
В атмега16 нет такого фьюза.
Цитата
и что я вижу на осцилографе.. частоту в 8-10 раз меньшую чем я задаю фузами.. а я думал увижу на ноге частоту кварца 1-8мГц.
А вы посмотрите ассемблерный листинг который вам сгенерил Кодевижон, там видно какими командами он это сделал и можно прикинуть время выполнения программы, а еще можете попробовать применить оптимизацию по скорости.
wwweider
Apr 14 2008, 06:58
подскажите как поставить фьюзы для работы уонтроллера на 16МГц с внешним кварцевым резонатором, я припаял 16МГЦ-вый правильно?
Цитата(wwweider @ Apr 14 2008, 12:58)

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

точных данных там не нашёл.
А это?
wwweider
Apr 14 2008, 08:56
поставил все галочки CKSEL
при первой попытке прошить выдал ошибку
потом першил как были галочки назад заработало
потом поставил опять все галочки прошилось но теперь больше не прошивается!(
да видел я эту таблицу, там опытным путём чтоли одну из трёх комбинаций ставить)
Цитата(wwweider @ Apr 14 2008, 14:56)

да видел я эту таблицу, там опытным путём чтоли одну из трёх комбинаций ставить)
Вот так и про CKOPT не забудьте, и про "0"-programmed, "1"-unprogrammed
В общем не должно у вас птичек там стоять ни в CKSEL, ни в CKOPT
wwweider
Apr 16 2008, 07:03
поставил, плюс ещё в паралельном програматоре бит spien выставил.
всё заработало но!
кварц поставил 16 мГц, программа:
while(1)
{
PORTA.1=!PORTA.1;
}
выдаёт 1МГц на ножке, что то нето? хотябы 4-8 увидеть бы. получается конроллер неработает на 16 мег? в даташите я вообще понял чтобы на 16 частоту выставить нужно внешний генератор?
смотрите ассемблерный листинг, считайте время выполнения всех команд цикла, исходя из известного числа тактов на каждую.
Цитата(wwweider @ Apr 16 2008, 10:03)

кварц поставил 16 мГц, ... выдаёт 1МГц на ножке, что то нето? хотябы 4-8 увидеть бы.
Хороший результат! Ваш цикл выполняется всего за 8 тактов. Зачем Вам 4-8 МГц частота? Просто - хочется? Какая конечная цель (задача)? Может, микроконтроллер для Вашей задачи не подходит...
wwweider
Apr 17 2008, 07:23
ну если хороший тогда ладно я спокоен) хотел убедится что выставил на 16мГц
задача брать данные с ацп и писать на флешку по spi желаельно не менее 100кБитперсек
или может другой шустрый процессор посоветуете? что бы я его стк200 мог запрограмить и корпус дип обязательно! люблю сам паять.
в любой меге есть аппаратный SPI, работающий на половине тактовой частоты. АЦП - тоже почти во всех.
Цитата
хотел убедится что выставил на 16мГц
Осциллографом посмотрите частоту на кварцевом резонаторе, если бы вы работали от внутреннего генератора, как мега настроена по-умолчанию, то генерации на кварце не было бы.
Цитата
может другой шустрый процессор посоветуете? что бы я его стк200 мог запрограмить
посмотрите, например, на мега168, да и все новые меги работают на частотах до 20МГц
wwweider
Apr 18 2008, 03:45
не ну 16 и 20 мГерц небольшая разница, хотелось на парядок ускориться)
а насчёт посмотреть на кварце вообще проблемма осцилограф как то влияет на кварцевый резонатор что контроллер перестаёт работать, причём нетолько на моей схеме, вроде бы и заземление осцилографа убрал. не помогло.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.