CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

физтеховиц писал(а):нужно получить ШИМ с частотой 100 кГц, ОБЪЯСНИТЕ ПОЖАЛУЙСТА КАК НАСТРАИВАТЬ ЧАСТОТУ ШИМ У AVR


"ШИМ в AVR" - это задача 8 под кнопкой Изображение ниже. Там и пример для симуляции.

100 кГц * 256 (это 8 бит) = 25.6 МГц

ATmega48 можно попробовать, а ATtiny261 наверняка сможет ШИМ 100 кГц выдавать.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
физтеховиц
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт ноя 02, 2007 20:22:09
Откуда: Сургут
Контактная информация:

Сообщение физтеховиц »

Ясно, и где такой кварц взять? и работают ли AVR НА ТАКОЙ ЧАСТОТЕ?
Если ATMega48/ATMega88/ATMega168 работают на частотах от 0 до 16 МГц у ATMega48/ATMega88/ATMega168
Друг, мы наверно не поняли друг друга
частота ШИМ =тактовая частота таймера/510,
где 510 для 8-битного счетчика
Итого, для 100КгЦ шим имеем 100КгЦ*510=51 МГЦ МНОГОВАТО БУДЕТ!!!! :shock:
Спрашивается и как быть??? как оптимально подобрать кварц?
Делай все проще-жить будет дольше
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

физтеховиц писал(а):ATMega48/ATMega88/ATMega168 работают на частотах от 0 до 16 МГц


До 20 МГц по ДШ. потому я и говорю попробуйте на 25 МГц.

физтеховиц писал(а):и как быть??? как оптимально подобрать кварц?


ВНИМАТЕЛЬНО читать ответы !!!

тини261 внутри увеличивает частоту до 64 МГц и таймер с такой частотой тикать может.

Пример исходников ШИМ на Тини261 есть на стр. 7 в курсе по AVR - см. AVR449
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

если использовать "укороченный" ШИМ - можно получить 100 кГц и на обычных мегах и тиньках... только разрядность ШИМ будет не 8, а 7 или менее бит...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
физтеховиц
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт ноя 02, 2007 20:22:09
Откуда: Сургут
Контактная информация:

Сообщение физтеховиц »

Хорош рекламировать этот сайт, по делу бы сказал хоть как реализовать 100 кгц ШИМ на каком кварце и т. д.
Делай все проще-жить будет дольше
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

ARV, хорош сайт рекламировать !!! :lol: :lol: :lol:
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

tych писал(а):ARV, хорош сайт рекламировать !!! :lol: :lol: :lol:
я больше не буду...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
физтеховиц
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт ноя 02, 2007 20:22:09
Откуда: Сургут
Контактная информация:

Сообщение физтеховиц »

tych писал(а):Пример исходников ШИМ на Тини261 есть на стр. 7 в курсе по AVR - см. AVR449

ДА,ДА-ЭТО Я ВАМ ГОВОРЮ (Шутька :)) )
Спасибо за дельный совет ARV,и tych тоже спасибо решено использовать 6-разрядный счетчик. тогда(без предделения частоты) получается частота 12,6 МГц, но вот проблемка, таких кварцев я не нашел, самый ближайший на 12,613 МГц, как быть? Посоветуйте пожалуйста
Делай все проще-жить будет дольше
Аватара пользователя
физтеховиц
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт ноя 02, 2007 20:22:09
Откуда: Сургут
Контактная информация:

Сообщение физтеховиц »

Решено:
взять кварц на 12 МГц;
предделения частоты не используем;
используем 6-битный таймер-счетчик;
считать счетчик будет от 0...60 (61 импульс) и обратно 59...1 (59 импульс) (кол-во импульсов счета за период=120);
тогда частота ШИМ=12 МГц/120=100 кГц

Респект и уважуха всем кто помог!!!
Делай все проще-жить будет дольше
Аватара пользователя
физтеховиц
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт ноя 02, 2007 20:22:09
Откуда: Сургут
Контактная информация:

Сообщение физтеховиц »

Уважаемые, подскажите как организовать таймер-счетчик так, чтобы он считал не до $FF и обратно, а , скажем, до 61 и обратно????
Возможно ли это???
Делай все проще-жить будет дольше
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

физтеховиц писал(а):Уважаемые, подскажите как организовать таймер-счетчик так, чтобы он считал не до $FF и обратно, а , скажем, до 61 и обратно???? Возможно ли это???


Возможно ! Примеры в задачах 6 и 13.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
sgarris
Родился
Сообщения: 5
Зарегистрирован: Пн май 12, 2008 09:26:50
Откуда: Moscow

Сообщение sgarris »

Контроллерами занимаюсь совсем недавно и есть такой вопрос к гуру программирования. Сначала выбрал Bascom-basic, как наиболее простой в освоении, тем более, что есть небольшой опыт в VB. Но из различных источников приходилось читать, что Си выдает один из самых компактных кодов, среди существующих языков высокого уровня.
Вот решил освоить Си в CodeVision, т.к. планируется использовать довольно сложные алгоритмы, и размер кода желательно минимизировать.
Была собрана простая схема на Атмега8535, к которой прикручен датчик
темп. DS18B20 и таймер DS1307. Для проверки были написаны две пр-ммы, одна в CV, другая в Баскоме. Обе программы используют собственные встроенные функции для работы с переферией, и реализуют одну задачу - вывод на LCD показаний датчика и таймера в форматированном виде.
Размер НЕХ-файла в Баскоме - 11423 байта, в CV - 11419 (в CV была включена максимальная оптимизация по размеру) . То-есть практически никакой разницы. При этом ИМХО программирование в бейсике намного проще. Читал так-же что код скомпилированный в Си выполняется быстрее, но это не принципиально, т.к. критичные ко времени участки все равно оформляются вставками на асме.
Так где-же истина? Или может в консерватории чего подправить :)
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Истина в том, что нужно писать на том языке и в той среде, которая в данном конкретном случае обеспечивает оптимальные параметры решения Вашей текущей задачи. На это также можно спроецировать Ваши привычки, удобство, общественное мнение и т.д. Поэтому, что бы Вы не выбрали, всегда найдется кто-то, кто предпочтет Вашему варианту другой. Идеала нет даже в каждом отдельно взятом случае, не говоря уж о программировании вообще. Поэтому давайте остановимся на этой пессимистичной ноте, поскольку в противном случае здесь разразится очередной холивар на тему ASM vs C vs Basic и т.д. Таких тем у нас хватает, если интересно - найдете.
Надеюсь, вопрос закрыт.
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

sgarris писал(а):Так где-же истина? :)

истина в вине, а программировать советую на СИ. Если нужен компактный код то в компиляторах WinAVR и IAR. CVAVR прост и удобен ИМХО.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
MiD
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср май 02, 2007 15:20:43
Контактная информация:

CodeVisionAVR: функция sprintf

Сообщение MiD »

CodeVisionAVR: функция sprintf - не выводит формат float

писал тут вопрос с такой темой, но меня справедливо направили в эту ветку...
Разобрался сам - Float в этой функции не работала, т.к. в настройках компилятора не стояла нужная галочка
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

sgarris писал(а):Так где-же истина? Или может в консерватории чего подправить :)
во-первых, сравнение оптимизаторов на "встроенных" функциях - смешное занятие: разумеется, все встроенные функции разработчиками оптимизированы так, чтобы быть лучше всех! :) скорее всего, они на асме вручную написаны... а вот вы полностью решите свою задачу на одном и другом языке, и тогда сравните, как они отреагируют на ваши "неоптимальные" функции - тогда истина, возможно, откроется.

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

Мой уютный бложик... заходите!
intel4ever
Родился
Сообщения: 14
Зарегистрирован: Вс апр 01, 2007 10:50:14
Откуда: Кишинёв (Молдова)
Контактная информация:

Сообщение intel4ever »

Подскажите пожалуйста, как вывести переменную типа integer на HD44780 совместимых ЖКИ?
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Думаю, самое простое - разбить на два char'a
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

intel4ever писал(а):Подскажите пожалуйста, как вывести переменную типа integer на HD44780 совместимый LCD ЖКИ ?


Наверно itoa() вначале использовать. Смотрите "Си для МК" стр. 5 часть 2 под кнопкой Изображение ниже.

Aheir писал(а):Думаю, самое простое - разбить на два char'a


Ну например int 28534 - разбиваем на два чара 111 и 118 и как их выводить ???
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

а чем sprintf не устраивает?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»