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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Mechanicalhand
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт дек 10, 2013 13:57:37

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

Сообщение Mechanicalhand »

Аlex писал(а):
Mechanicalhand писал(а): :shock:
Я предложил вариант, что не так ? :)
Где то, красивее чего нужно запилить ? И что означает "покрасивей" ?

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

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

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

Повторю вопрос:
Аlex писал(а):Где то, красивее чего нужно запилить ?

С чем нам сравнивать ? Чем Вам не угодил Ваш вариант ?

чтоб понятно было.
Кому ?
Аватара пользователя
unalex
Мучитель микросхем
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

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

Сообщение unalex »

Mechanicalhand писал(а):как покрасивей запилить значение переменной unsigned long в массив unsigned char[10];


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

unsigned long a=123456789;

unsigned char b[4], count ;

for(count=0; count <= 3; count++)
{
   b[count]=(unsigned char)(a >> (count*8));
}
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

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

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

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

Mechanicalhand писал(а):как покрасивей запилить значение переменной unsigned long в массив unsigned char[10];
unalex писал(а):

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

unsigned long a=123456789;

unsigned char b[4], count ;

for(count=0; count <= 3; count++)
{
   b[count]=(unsigned char)(a >> (count*8));
}
А Вы уверены, что человеку не это нужно :

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

unsigned long a=123456789;
unsigned char b[10];
.........
sprintf (b, "%u", a);
? :)
Или сейчас будем все разом доставать магические шары или нудно и медленно вытягивать из человека информацию ?
Непонимание того, что человек хочет, на лицо. Т.к. он даже нормально не может задать вопрос и объяснить, что ему нужно.
Пусть сначала в мыслях разберётся...
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

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

Сообщение zero648 »

pashaumnov писал(а):вот кое что тут вычитал, если включать ион внутренний то при 4в на выходе делителя должно быть 1.1в и это будет 1024???

А если напряжение на входе делителя будет больше 4В, лучше делать делитель с запасом небольшим. Включаешь внутренний ИОН 1.1В и делитель, например: 3.3кОм + 10кОм, тогда при 4В АЦП = ~924, при 2.5В АЦП=~577, промежуточные значения можно найти по прямолинейной зависимости.
Аватара пользователя
0867532
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб май 25, 2013 21:14:11
Откуда: Москва
Контактная информация:

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

Сообщение 0867532 »

Подскажите, а есть в СИ, CvAVR в частности, функция, или операция, что б получить результат от деления, но после точки?
Например: 6\8 = 0,75
Как мне получить 75?
Если возникнут вопросы - посмотрите на мой аватар.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

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

0867532 писал(а):Как мне получить 75?
Умножть на 100 и поделить :)
(6*100)/8 = 75
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

Аlex писал(а):3.3кОм + 10кОм, тогда при 4В АЦП = ~924, при 2.5В АЦП=~577,

Как вы получили значение 924 и 577???
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

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

Сообщение zero648 »

pashaumnov писал(а):Как вы получили значение 924 и 577???

Посчитал по формуле: (4В*3.3к)/(3.3к+10к)*1024/1.1В=923.9
Аналогично для остальных значений напряжения
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

спасибо за разяснения, а с кодом не кто не поможет ??? дело в том что у меня при разных значениях ацп одновременно почему то загораются все светодиоды(((
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Чем помочь? (перечитывать не охота)
Docendo discimus
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

pyzhman писал(а):Чем помочь? (перечитывать не охота)

сейчас на работе ((( вечерком скину сюда код над которым я 2 выходных просидел(((( у меня там сделано с помощью визарда заголовочные строки, там же и написан алгоритм считания...но у меня почему то не хотят загораться светодиоды при превышении напряжения. я вам алгоритм в работы в личку скину что бы тут по 2 раза не писать а вечером код программы сюда выложу что бы вы подсказать мне смогли .хорошо))?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

ок
Docendo discimus
dreamernf
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт мар 29, 2012 13:07:27

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

Сообщение dreamernf »

Александр 2677 писал(а):Такой вопрос. Хочу в char str[80]; добавить текст

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

char t[]="TEST1";
sprintf (str, "TEXT=%s ", t);//так работает

sprintf (str, "TEXT=%s ", "TEST2");//так не работает



Если заранее объявить переменную и поместить туда текст, то проблем нет.
Я видел пример http://www.c-cpp.ru/content/sprintf где текст добавляется без объявления переменной, но у меня вместо текста в терминал выходит пустота.(


попробуй так:

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

sprintf (str, "TEXT=%p ", "TEST2");

вместо %s напиши %p
%s - берет данные из оперативки (с переменной)
%p - берет данные из FLASH (когда пишешь "TEST2" - компилятор это еще при компиляции запишет в FLASH
Аватара пользователя
Vi7
Встал на лапы
Сообщения: 147
Зарегистрирован: Пн авг 09, 2010 19:14:00
Откуда: Горловка

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

Сообщение Vi7 »

Добрый день всем. Есть непонятка с cvavr. Имеется четыре байта в массиае. Надо сделать из них переменную типа long (из четырех восьмибитных байт сделать один тридцатидвухбитный байт). Делаю так
unsigned long int peremennaya = (mass[1]<<24)+(mass[2]<<16)+(mass[3]<<8)+mass[4] ;
Что я делаю не так? Заранее спасибо за любую помощь. Извеняйте за очепятки... с телефона... обстоятельства... :-)
Решительный шаг вперёд - есть результат хорошего пинка сзади.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Нужно использовать не сумму, а логическую сумму тоесть вместо знака '+' знак '|'.
«И всё-таки она вертится!»
Аватара пользователя
Vi7
Встал на лапы
Сообщения: 147
Зарегистрирован: Пн авг 09, 2010 19:14:00
Откуда: Горловка

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

Сообщение Vi7 »

Спасибо. Будем пробвать :-)
Решительный шаг вперёд - есть результат хорошего пинка сзади.
Discrim
Родился
Сообщения: 2
Зарегистрирован: Пн дек 23, 2013 23:41:34

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

Сообщение Discrim »

Всем привет.
У меня возникла проблема, CVAVR не создает Hex файл. Версия 3.08
Я выполнял все, что написано на этом сайте http://proavr.narod.ru./ Я надеюсь, это не сочтут за рекламу.
На шаге 4 у меня возникла проблема. В Codevisionavr я открываю cv.prj, в нем правлю файл pwm.c, после чего нажимаю кнопку Build all project files.
По инструкции, у меня должен поменяться pwm.hex, но этого не происходит и после ребилда в VMlabe ничего не меняется, код тот же.
Что делать не знаю... В интернете решения не нашел. Все делаю по инструкции, уже все с нуля ни раз начинал.
Могу дополнить, я нахожусь на админе, то есть, прав должно хватать на замену. Но даже при отсутствии начального hex файла в папке, все равно новый не создается.
Надеюсь на вашу помощь.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Apparatchik писал(а):Нужно использовать не сумму, а логическую сумму тоесть вместо знака '+' знак '|'.
г
Так для однократного повторения эти операции одинаковы. А вот если mass[1] переменная 8 бит то хоть сколько двигай результат будет 0.
Явное приведение типов должно решить проблему.
Ответить

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