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

Обсуждаем контроллеры компании Atmel.
NebelWefer
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

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

Сообщение NebelWefer »

никто не сталкивался с такой особенностью: на сайте CodeVision заявлено, что для фри-версии ограничение кода в 3 кб, но у меня при попытке собрать что-либо > 1 кб- выдает ошибку "достигнуто ограничение триальной версии"
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Всем привет! Господа помогите разобраться с АЦП в Atmega8.
Мне нужно при помощи АЦП измерить звуковой сигнал. Вот что я делаю:

Код: Выделить всё

    Void main(void)
    {
    // для начала я делаю инициализацию АЦП
    //АЦП- Вкл.
    //Прерывание – Вкл.
    //Коэффициент деления – 1
    
    ADCSRA= 0x90 // 0x90 = 0b1001000

// Потом я выбираю опорное напряжение и канал
// Опорное напряжение как напряжение питания (AVcc)
// Выбранный канал АЦП – PC0 (ADC0)

             ADMUX = 0x40 // 0x40 = 0b01000000

            // Далее просто запускаем АЦП

            ADCSRA = 0x40 // 0x40 = 0b01000000
    }


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

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

Сообщение ARV »

Sounds писал(а):Скажите правильно ли я произвёл настройку?
да
Sounds писал(а):Расскажите как выбрать коэффициент деление, точнее как его рассчитать?
по желаемой скорости работы АЦП: для сохранения заявленных производителем параметров АЦП следует работать на скоростях АЦП до 200 килогерц, отсюда и выбираете компромиссное значение делителя тактовой частоты АЦП. Если устроит некоторое ухудшение параметров АЦП, можно работать на частотах до 1 МГц.
Sounds писал(а):Я смогу измерить звуковой сигнал при помощи встроенного АЦП в Atmega8?
c учетом только что озвученных ограничений по частоте (не забывайте, что цикл АЦП длится 13 тактов частоты АЦП) - сможете
Sounds писал(а):Как настроить АЦП на 10-ти битный режим?
АЦП в вашем микроконтроллере всегда работает в 10-битном режиме

какое отношение все эти вопросы имеют к CodeVision ?! народ, ну будьте же точны в вопросах!!! это типичные вопросы по архитектуре AVR, причем вопросы того, кто не желает прочесть даташит или его многочисленные переводы.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Спасибо за ответ!
Скажи пожалуйста, вот у меня коэффициент деления стоит 1, и МК тактируется от внешнего кварца на 8МГц. Какова скорость работы АЦП в данном случаи? Если можно с формулой!

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

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

Сообщение ARV »

говоря "скорость" я немного исказил правду: имелась ввиду тактовая частота АЦП. если делитель 1, то в вашем случае тактовая частота АЦП так же будет 8 МГц - только откуда вы взяли такой делитель?! в АЦП меги8 минимальный делитель тактовой АЦП равен (блин, забыл, а даташита нет под рукой) по-моему 2 или даже 4...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Да, вы совершенно правы делитель равен 2, я просто очень сильно тупанул.
Тогда получается так.
Если МК тактируется от 8 МГц, то:
8 МГц / 64 (коэффициент деления) = 8000000/64=125000 Гц=125кГц
Если МК тактируется от 16МГц, то:
16 МГц / 64 (коэффициент деления) = 16000000/64=250000 Гц=250кГц

Это правильные подсчёты?
Мне подходит коэффициент деления 64? (Вывод сделал из: для сохранения заявленных производителем параметров АЦП следует работать на скоростях АЦП до 200 килогерц)
Проверьте пожалуйста настройку делителя со значением 64, ADCSRA= 0x9C // 0x9C = 0b1001110. Это правильно?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

расчеты верные, а вот установку битов в регистре управления для задания коэффициента деления я проверить не смогу, так как лишен возможности заглянуть в даташит.

хочу вам еще предложить кое-какие расчеты - для сведения.

вы хотите анализировать звуковой сигнал - какую частоту семплов АЦП надо обеспечить? и какой частотой при этом надо будет тактировать АЦП?
звуковым называют сигнал до 20 кГц. чтобы адекватно анализировать сигнал, надо обеспечить частоту семплирования минимум в 2 раза выше максимальной частоты сигнала - в нашем случае 40 кГц. раз АЦП на один семпл тратит 13 тактов своей рабочей частоты, то легко вычислить, на какой частоте должен работать АЦП: 40000*13=520000 или 520 кГц. теперь прикиньте делитель :)))

другая постановка задачи: вы имеете АЦП с тактовой частотой 250 кГц. какую максимальную частоту сигнала при этом удастся проанализировать?
вычисляем частоту семплов: 250000/13=19231 Гц, или просто 19,2 кГц. входной сигнал должен иметь минимум в 2 раза меньшую частоту, т.е. не более 9,6 кГц :)))

кроме всего учтите, что "потолок" входной частоты (20 ли килогерц это будет или 9,6) вам надо обеспечить внешним аналоговым фильтром, иначе могут быть большие искажения....
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Спасибо за разъяснения!
Если делать по первому варианту: 40000*13=520000, то получается ближайшие делители это 16 и 8. При делители 16 результат равен 500000 (500кГц), а при 8 соответственно 1000000 (1000 кГц). Какое значение правильней выбрать? Ведь в МК AVR Atmega8 существует всего 7 делителей, это 2,4,8,16,32,64,128. И как правильно поступить в этой ситуации?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

что такое "правильней"? вы же понимаете, что правильность решения зависит от исходных условий...

вы скажите - вам действительно надо 20 кГц обрабатывать? как именно вы собрались их обрабатывать?

если все-таки необходимо - то учтите, что 520 кГц для АЦП - это вне рекомендованных пределов, т.е. АЦП будет давать погрешность на такой частоте... значит, придется не 10 бит использовать, а меньше...

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

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

С моими возможностями получается только до 9.6кГц максимум.
Как можно увеличить максимальный порог частоты?
Может спасёт внешний АЦП?
В профессиональной аппаратуре до какой частоты в основном обрабатываются данные перед выводом на индикацию?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

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

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

Сообщение ARV »

Sounds писал(а):Сделать индикацию как на микшерных пультах, на усилителях.

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

Мой уютный бложик... заходите!
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

В итоги должна получится индикация линейная, только не на светодиодах, а на графическом LCD.
В общем получается так на графическом дисплее будет 4 канала индикации будет рисоваться шкалы в зависимости от входного сигнала, а рядом будет писаться сколько децибел.
В общем задумка такова, но а сейчас хочу разобраться хотя бы с одним каналом.
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

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

Сообщение 12val12 »

Подскажите ..существует ли бутлоадер (COm или USB) после прошивки которого можно будет работать встроенным в CV
программатором ?
ух ты.... показывает
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

подскажите как правильно объявить

typedef struct {
unsigned char itemstr[20];
ITEM_STRUCT * nextitem;
} ITEM_STRUCT;

то есть нужно сделать ссылку на объявляемый тип...

это делается только через void * nextitem ?

мне нужно объявить эту структуру и потом создать константы по ее формату
Saadov
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

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

Сообщение Saadov »

12val12 писал(а):Подскажите ..существует ли бутлоадер (COm или USB) после прошивки которого можно будет работать встроенным в CV
программатором ?

Поиск...
http://www.cmeter.org/CVmegaload/index.html
http://www.microsyl.com/index.php/category/software/

ВитГо писал(а):подскажите как правильно объявить

typedef struct {
unsigned char itemstr[20];
ITEM_STRUCT * nextitem;
} ITEM_STRUCT;

то есть нужно сделать ссылку на объявляемый тип...

это делается только через void * nextitem ?

мне нужно объявить эту структуру и потом создать константы по ее формату


Код: Выделить всё

typedef struct {
   unsigned char* itemstr;
   void*               nextitem;
} ITEM_STRUCT;

struct ITEM_STRUCT str[] =
{
   { "NAME1",
     &peremen1},
   { "NAME2",
     &peremen2}
};


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

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

Сообщение ARV »

Saadov писал(а):

Код: Выделить всё

typedef struct {
   unsigned char* itemstr;
   void*               nextitem;
} ITEM_STRUCT;

struct ITEM_STRUCT str[] =
{
   { "NAME1",
     &peremen1},
   { "NAME2",
     &peremen2}
};

Если я вас правильно понял....
думаю, вы поняли немного неверно. все гораздо элегантнее, без пустых указателей:

Код: Выделить всё

typedef struct tag {
   char *itemstr;
   struct tag *nextitem;  // указатель на структуру этого же самого типа
} ITEM_STRUCT;
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

гм..
в строчке struct tag * nextitem;

ругается на tag
говорит что error и undefinited tag "tag"

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

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

Сообщение ARV »

ВитГо писал(а):в строчке struct tag * nextitem;
ругается на tag
avr-gcc не ругается, на сколько я понял, такая запись укладывается в стандарт Си.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

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