чтоб понятно было.Аlex писал(а):Я предложил вариант, что не так ?Mechanicalhand писал(а):![]()
Где то, красивее чего нужно запилить ? И что означает "покрасивей" ?
CodeVision AVR в вопросах и ответах
- Mechanicalhand
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Вт дек 10, 2013 13:57:37
Re: CodeVision AVR в вопросах и ответах
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Повторю вопрос:
С чем нам сравнивать ? Чем Вам не угодил Ваш вариант ?Аlex писал(а):Где то, красивее чего нужно запилить ?
Кому ?чтоб понятно было.
- unalex
- Мучитель микросхем
- Сообщения: 424
- Зарегистрирован: Сб авг 25, 2007 22:02:05
- Откуда: Германия, Viernheim
Re: CodeVision AVR в вопросах и ответах
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 в вопросах и ответах
блин а моя тема про ацп уже в саой ж...е((( не кто не поможет мне???
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
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 в вопросах и ответах
А если напряжение на входе делителя будет больше 4В, лучше делать делитель с запасом небольшим. Включаешь внутренний ИОН 1.1В и делитель, например: 3.3кОм + 10кОм, тогда при 4В АЦП = ~924, при 2.5В АЦП=~577, промежуточные значения можно найти по прямолинейной зависимости.pashaumnov писал(а):вот кое что тут вычитал, если включать ион внутренний то при 4в на выходе делителя должно быть 1.1в и это будет 1024???
- 0867532
- Встал на лапы
- Сообщения: 142
- Зарегистрирован: Сб май 25, 2013 21:14:11
- Откуда: Москва
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Подскажите, а есть в СИ, CvAVR в частности, функция, или операция, что б получить результат от деления, но после точки?
Например: 6\8 = 0,75
Как мне получить 75?
Например: 6\8 = 0,75
Как мне получить 75?
Если возникнут вопросы - посмотрите на мой аватар.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Умножть на 100 и поделить0867532 писал(а):Как мне получить 75?
(6*100)/8 = 75
- pashaumnov
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Чт июн 25, 2009 16:00:25
- Откуда: нижний новгород
Re: CodeVision AVR в вопросах и ответах
Как вы получили значение 924 и 577???Аlex писал(а):3.3кОм + 10кОм, тогда при 4В АЦП = ~924, при 2.5В АЦП=~577,
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: CodeVision AVR в вопросах и ответах
Посчитал по формуле: (4В*3.3к)/(3.3к+10к)*1024/1.1В=923.9pashaumnov писал(а):Как вы получили значение 924 и 577???
Аналогично для остальных значений напряжения
- pashaumnov
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Чт июн 25, 2009 16:00:25
- Откуда: нижний новгород
Re: CodeVision AVR в вопросах и ответах
спасибо за разяснения, а с кодом не кто не поможет ??? дело в том что у меня при разных значениях ацп одновременно почему то загораются все светодиоды(((
- pashaumnov
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Чт июн 25, 2009 16:00:25
- Откуда: нижний новгород
Re: CodeVision AVR в вопросах и ответах
сейчас на работе ((( вечерком скину сюда код над которым я 2 выходных просидел(((( у меня там сделано с помощью визарда заголовочные строки, там же и написан алгоритм считания...но у меня почему то не хотят загораться светодиоды при превышении напряжения. я вам алгоритм в работы в личку скину что бы тут по 2 раза не писать а вечером код программы сюда выложу что бы вы подсказать мне смогли .хорошо))?pyzhman писал(а):Чем помочь? (перечитывать не охота)
Re: CodeVision AVR в вопросах и ответах
попробуй так:Александр 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 - берет данные из FLASH (когда пишешь "TEST2" - компилятор это еще при компиляции запишет в FLASH
Re: CodeVision AVR в вопросах и ответах
Добрый день всем. Есть непонятка с cvavr. Имеется четыре байта в массиае. Надо сделать из них переменную типа long (из четырех восьмибитных байт сделать один тридцатидвухбитный байт). Делаю так
unsigned long int peremennaya = (mass[1]<<24)+(mass[2]<<16)+(mass[3]<<8)+mass[4] ;
Что я делаю не так? Заранее спасибо за любую помощь. Извеняйте за очепятки... с телефона... обстоятельства...
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 в вопросах и ответах
Нужно использовать не сумму, а логическую сумму тоесть вместо знака '+' знак '|'.
«И всё-таки она вертится!»
Re: CodeVision AVR в вопросах и ответах
Спасибо. Будем пробвать 
Решительный шаг вперёд - есть результат хорошего пинка сзади.
Re: CodeVision AVR в вопросах и ответах
Всем привет.
У меня возникла проблема, CVAVR не создает Hex файл. Версия 3.08
Я выполнял все, что написано на этом сайте http://proavr.narod.ru./ Я надеюсь, это не сочтут за рекламу.
На шаге 4 у меня возникла проблема. В Codevisionavr я открываю cv.prj, в нем правлю файл pwm.c, после чего нажимаю кнопку Build all project files.
По инструкции, у меня должен поменяться pwm.hex, но этого не происходит и после ребилда в VMlabe ничего не меняется, код тот же.
Что делать не знаю... В интернете решения не нашел. Все делаю по инструкции, уже все с нуля ни раз начинал.
Могу дополнить, я нахожусь на админе, то есть, прав должно хватать на замену. Но даже при отсутствии начального hex файла в папке, все равно новый не создается.
Надеюсь на вашу помощь.
У меня возникла проблема, 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 в вопросах и ответах
гApparatchik писал(а):Нужно использовать не сумму, а логическую сумму тоесть вместо знака '+' знак '|'.
Так для однократного повторения эти операции одинаковы. А вот если mass[1] переменная 8 бит то хоть сколько двигай результат будет 0.
Явное приведение типов должно решить проблему.


