Страница 86 из 421

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

Добавлено: Вт авг 24, 2010 23:19:51
NebelWefer
никто не сталкивался с такой особенностью: на сайте CodeVision заявлено, что для фри-версии ограничение кода в 3 кб, но у меня при попытке собрать что-либо > 1 кб- выдает ошибку "достигнуто ограничение триальной версии"

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

Добавлено: Ср авг 25, 2010 11:18:03
Sounds
Всем привет! Господа помогите разобраться с АЦП в Atmega8.
Мне нужно при помощи АЦП измерить звуковой сигнал. Вот что я делаю:

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

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

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

             ADMUX = 0x40 // 0x40 = 0b01000000

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

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

Скажите правильно ли я произвёл настройку?
Расскажите как выбрать коэффициент деление, точнее как его рассчитать?
Я смогу измерить звуковой сигнал при помощи встроенного АЦП в Atmega8?
Как настроить АЦП на 10-ти битный режим?

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

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

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

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

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

P.S. Не серчайте, я только учусь и много не понимаю, плюс ко всему слабо знаю английский.

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

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

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

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

Это правильные подсчёты?
Мне подходит коэффициент деления 64? (Вывод сделал из: для сохранения заявленных производителем параметров АЦП следует работать на скоростях АЦП до 200 килогерц)
Проверьте пожалуйста настройку делителя со значением 64, ADCSRA= 0x9C // 0x9C = 0b1001110. Это правильно?

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

Добавлено: Ср авг 25, 2010 16:03:06
ARV
расчеты верные, а вот установку битов в регистре управления для задания коэффициента деления я проверить не смогу, так как лишен возможности заглянуть в даташит.

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

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

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

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

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

Добавлено: Ср авг 25, 2010 16:17:01
Sounds
Спасибо за разъяснения!
Если делать по первому варианту: 40000*13=520000, то получается ближайшие делители это 16 и 8. При делители 16 результат равен 500000 (500кГц), а при 8 соответственно 1000000 (1000 кГц). Какое значение правильней выбрать? Ведь в МК AVR Atmega8 существует всего 7 делителей, это 2,4,8,16,32,64,128. И как правильно поступить в этой ситуации?

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

Добавлено: Ср авг 25, 2010 16:44:52
ARV
что такое "правильней"? вы же понимаете, что правильность решения зависит от исходных условий...

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

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

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

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

Добавлено: Ср авг 25, 2010 17:14:49
Sounds
С моими возможностями получается только до 9.6кГц максимум.
Как можно увеличить максимальный порог частоты?
Может спасёт внешний АЦП?
В профессиональной аппаратуре до какой частоты в основном обрабатываются данные перед выводом на индикацию?

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

Добавлено: Ср авг 25, 2010 18:46:37
ARV
какая задача у вас? конкретно и открыто

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

Добавлено: Ср авг 25, 2010 19:02:00
Sounds
Сделать индикацию как на микшерных пультах, на усилителях.

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

Добавлено: Ср авг 25, 2010 19:04:36
ARV
Sounds писал(а):Сделать индикацию как на микшерных пультах, на усилителях.
ваши предки были партизанами и сгинули в застенках СС, не иначе? вы можете рассказать конкретно, что хотите? индикация бывает стрелочными индикаторами, бывает 2 полоски уровней, бывает спектроанализатор... и что вам посоветовать из этого?!

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

Добавлено: Ср авг 25, 2010 19:49:23
Sounds
В итоги должна получится индикация линейная, только не на светодиодах, а на графическом LCD.
В общем получается так на графическом дисплее будет 4 канала индикации будет рисоваться шкалы в зависимости от входного сигнала, а рядом будет писаться сколько децибел.
В общем задумка такова, но а сейчас хочу разобраться хотя бы с одним каналом.

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

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

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

Добавлено: Ср сен 08, 2010 19:06:33
ВитГо
подскажите как правильно объявить

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

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

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

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

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

Добавлено: Ср сен 08, 2010 21:27:07
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}
};
Если я вас правильно понял....

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

Добавлено: Ср сен 08, 2010 21:57:59
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;

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

Добавлено: Чт сен 09, 2010 08:21:44
ВитГо
гм..
в строчке struct tag * nextitem;

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

struct ITEM_STRUCT * nextitem; тоже пробовал... :-( не известный таг ITEM_STRUCT

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

Добавлено: Чт сен 09, 2010 08:57:36
ARV
ВитГо писал(а):в строчке struct tag * nextitem;
ругается на tag
avr-gcc не ругается, на сколько я понял, такая запись укладывается в стандарт Си.