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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ua1arn
Встал на лапы
Сообщения: 81
Зарегистрирован: Вт май 08, 2012 23:15:45
Откуда: Санкт - Петербург

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

Сообщение ua1arn »

Я использовал.

Например, работа в персоналке с таймером (18 с чем-то там герц):


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

/*   Time stamps.   */
/*
 *   As well, input clock rate on i8254 is 1.193180 MHz.
 *   Then this clock is divided to 65535, output pulse has
 *   54.9245 ms.
 */

#define TS_CLOCKINCR   549245   /* increment in 100ns.   */

static void timer_isr(void * data, unsigned long ec, struct ts_cpu_regs_r0 * pt)
{
   (void) data;
   time_add32(& host0.sys_uptime, TS_CLOCKINCR);   /* increment in 100ns.   */
}
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

или это просто теоретические рассуждения ?
Я юзал. Работает, и не только в теории. Часики с этим алгоритмом на полочке стоят :)
Можно заюзать таймер с компаратором, если таковой имеется на борту МК.
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

Аlex писал(а):Часики с этим алгоритмом на полочке стоят

и что идут секунда в секунду без програмной корекции ?
Tell Me The Truth
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Без коррекции никак, кварц не идеален. Зато с алгоритмом Брезенхема легко реализовывать коррекцию хода.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

а можна исходник ваших часов глянуть ?
Tell Me The Truth
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Там не только часы, ещё и термометр с кучей наворотов. В нём трудно будет что либо понять.
Почитайте про этот алгоритм, что будет не понятно - спрашивайте.
Реклама
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Здравствуйте.. А можно в CVAVR или в протеусе каким нибудь образом проследить изменение переменных в программе? Ато по подсчётам должно получится ТАКОЕ число, но когда условие ставлю, то оно не срабатывает. Вот терь и не знаю что там за кракозябра плавает... :(
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

В протеусе можно. Подключите в свойствах МК .cof файл.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

может и правда плавает.вообще неплохо было бы знать что за код у вас.может стоит попробовать перед расчетом обнулить какие нибудь переменные?или расчет ваш неверный.
можно в симуляции студии посмотреть. Кв сам предлагает симулировать в студии,если она установлена.
В поисках истины человек развивается.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Аlex писал(а):В протеусе можно. Подключите в свойствах МК .cof файл.

Там только "иерархический модуль"?. Что то я такого .cof там найти не могу....
vitalik_1984 писал(а):Кв сам предлагает симулировать в студии,если она установлена.

Код очень большой... Я уже сам запутался что писал... А студию отдельно скачивать надо и устанавливать?
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

ну конечно в коде вижне нет установочных файлов студии.
В поисках истины человек развивается.
Roin
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн фев 27, 2012 16:29:37
Откуда: Бугульма

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

Сообщение Roin »

Всем привет. подскажите как писать флоат переменные в энергонезависимую память) у меня FM31256 но роли это не играет, память обычная. т.е байт я туда записываю и читаю, а как флоат записать незнаю :(
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

можно через указатель скопировать я думаю побайтно.
В поисках истины человек развивается.
Roin
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн фев 27, 2012 16:29:37
Откуда: Бугульма

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

Сообщение Roin »

Можно немного подробнее пожлста.
Вот у меня есть функция записи байта и записи массива байтов в память. А как разбить флоат для записи и как потом склеить при чтении?
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

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

Сообщение urry »

Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

urry,да уж.в темах похожие вопросы иногда одновременно задают
я когда ответил в этой теме сразу прочитал ваше сообщение в той теме и подумал, что это на эту тему ответ был :))
Ваша ссылка как то не туда показывает
Вот где ответ
RoinЧерез юнион разбиваем через него же и собираем.
аналогично передаче по юарт получается в вашем случае.
В поисках истины человек развивается.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

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

Сообщение urry »

Годами отвечаешь на одни и те же вопросы. Я предлагал модератору сделать рубрику
"Си для блондинок"
с разделами
1 Структура программы
2 Область видимости переменных, сборка проекта из нескольких файлов, применение екстерн.
3 Параметры оптимизации, назначение volatile, static, функции online и макросы
4 Работа с указателями, массивами, массив указателей, инициализация указателей, union
5 работа с битовыми полями
6 назначение typedef, структуры, передача указателя на структуру в функцию

И всех - туда...
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

инициатива бьет инициатора :))
кому еще эти рубрики делать кроме гуру программирования?
я поддерживаю эту идею,только боюсь помочь не смогу :(
В поисках истины человек развивается.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

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

Сообщение clawham »

Привет всем!
Пишу на кодвижне звуковой автоматик
несоклько звуков 11 килогерц квантования 8 бит

определяю массив этого звука

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

flash signed char muz1[] = {
-84, -77, -66, -91, -93, -88, -95, -87, // 0-7
...
};

flash signed char muz2[] = {
-84, -77, -66, -91, -93, -88, -95, -87, // 0-7
...
};

flash signed char muz3[] = {
-84, -77, -66, -91, -93, -88, -95, -87, // 0-7
...
};


потом делаю массив указателей на эти звуки

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

flash signed char * SNDS[] = {muz1, muz2, muz3, muz4, muz5, muz6, muz8, muz9, muz10, muz11};


чтобы их можно было из менюшки выбирать по номеру

но вот незадача....звуки то я менять буду постоянно....а длины каждого звука у меня нет!
функция sizeof(muz1) работает нормально и возвращает длину
но вот как мне в программе получить длину по указателю?
sizeof(SNDS[1]) даёт 4 - значение длины указателя а не длину того на что указывает....
эт всё константы и все во флеше...
мега 103 :) вся будет забита звуками... кто подскажет как получить длину звука?
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

можно сделать функцией типа while(snds[x][z++])length++;
,а можно не тратить машинное время и прописать в нулевой байт массива размер мелодии.
ну или той же функцией извлекать
while(snds[x][z++]){sound(snds[x][z]);}
Последний раз редактировалось vitalik_1984 Чт июн 21, 2012 09:08:23, всего редактировалось 1 раз.
В поисках истины человек развивается.
Ответить

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