Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 07, 2025 15:15:32

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8295 ]     ... , , , 103, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 14:50:46 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
unsigned int indication_IND;
Если вывести число a[0] = 186; то оно правильно выводится, а остальные неправильно... Что то я не догоняю...
А вы уверены, что unsigned int? Похоже на восмиразрядную переменную. Поэтому все ваши числа, начиная с 279 отображаются неверно. Так 372 будет 116; 465 - 209, и т. д.
Это может быть даже не здесь, а при обработке вывода на индикатор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 15:04:12 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
если я объявляю массив как flash unsigned int a[100]; то как потом мне в нем изменить значение элементов?
Насколько известно, только при программировании МК. Если нужно, записывайте в EEPROM. Там оперативные изменения возможны.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 15:29:36 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
Нужно решить это математическое действие зная все переменные.
indication_IND = (y1 + ((y2-y1)/(x2-x1))*(x-x1));

float y1, y2, x, x1, x2, ;
unsigned int indication_IND;

Почему то у меня на индикаторе indication_IND всегда горит Ноль! Почему? Я же ведь использую переменные с плавающей точкой!!!

indication_IND = (30+((45-30)/(465-372))*(418-372)) = 37,419

Или нельзя сразу много действий делать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 15:39:03 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
Почему то у меня на индикаторе indication_IND всегда горит Ноль! Почему? Я же ведь использую переменные с плавающей точкой!!!
indication_IND = (30+((45-30)/(465-372))*(418-372)) = 37,419
У вас результат записывается в переменную unsigned int, несмотря на то, что в правой части используются переменные float


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 15:47:43 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
ValBag писал(а):
Amstron писал(а):
Почему то у меня на индикаторе indication_IND всегда горит Ноль! Почему? Я же ведь использую переменные с плавающей точкой!!!
indication_IND = (30+((45-30)/(465-372))*(418-372)) = 37,419
У вас результат записывается в переменную unsigned int, несмотря на то, что в правой части используются переменные float


А почему если я делаю так, то у меня на индикаторе пишется число 6 ??? По Вашему умузаключению же такого быть не может!
x1 = 93;
y1 =15 ;
indication_IND = x1/y1; //indication_IND = 6,2


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 15:58:14 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
Ноль выводил, потомуто накосячил с выводом числа x1 и тому подобных.

А вопщих чертах работает!!! и нет ни какой ругани с unsigned int, несмотря на то, что в правой части используются переменные float!


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 16:10:23 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
А почему если я делаю так, то у меня на индикаторе пишется число 6 ??? По Вашему умузаключению же такого быть не может!
x1 = 93;
y1 =15 ;
indication_IND = x1/y1; //indication_IND = 6,2
Соответствие типов переменных, это не мое умозаключение, а правила СИ. Я не сказал, что 0 на индикаторе будет всегда. Ругани не будет, а компилятор молча запишет результат в целочисленную (а не дробную) переменную int, а отрицательный "результат" вылезет потом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 17:41:24 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Пт фев 12, 2010 14:02:22
Сообщений: 237
Откуда: Одесса
Рейтинг сообщения: 0
Amstron писал(а):

А вопщих чертах работает!!! и нет ни какой ругани с unsigned int, несмотря на то, что в правой части используются переменные float!

Выключены предупреждения в настройке Compiler по несоответствию типов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс янв 02, 2011 17:55:20 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
odesasha писал(а):
Amstron писал(а):

А вопщих чертах работает!!! и нет ни какой ругани с unsigned int, несмотря на то, что в правой части используются переменные float!

Выключены предупреждения в настройке Compiler по несоответствию типов.

Ну, да так и есть... Пока не вижу смысла паниковать...(((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 10:30:15 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
Помогите разобраться! Если я создаю массив приведеный ниже то у меня программа занмает 1537 слов 0% eeprom
unsigned int massiv[100];

А если создам в eeprom, то
eeprom unsigned int massiv[100]; 1569 слов, 200 байт eeprom 39,1 % от eeprom.

Вопрос: я как пологаю 1569 это общий размер файла прошивки. При создании массива в области eeprom у меня добавилось еще 32 слова - я пологаю это вектора адресов на массив коорый находится в eeprom???

Второе: При создании массива в eeprom компиль ругнулся следующей фразой: Warning : L40: uninitialized EEPROM
Что бы это могло значить? Переводчик говорит что неинициализированный EEPROM.


Скажите, если я делаю массив в памяти eeprom, то где его инициализировать? Точнее как в этот массив записать значения?
Далаю вот такую запись eeprom massiv[5] = 279; не проканывает! Тоесть все как и раньше, только вставляю слово eeprom - но не получается.


Последний раз редактировалось Amstron Пн янв 03, 2011 10:45:46, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 10:40:18 
Собутыльник Кота
Аватар пользователя

Карма: -22
Рейтинг сообщений: -63
Зарегистрирован: Вт сен 14, 2010 10:27:19
Сообщений: 2584
Рейтинг сообщения: 0
как в Хелпе CVAVR написано в примерах

_________________
Будете проходить мимо- проходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 11:36:28 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
Помогите разобраться!
Чтобы не было варнинга, объявление переменной в ЕЕPROM:
Код:
#pragma warn-
eeprom unsigned int massiv[100] = {...}; // инициализация, если нужно.
#pragma warn+
Ну а дальше, обращение как к обычной переменной, без всякого EEPROM.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:00:48 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
ValBag писал(а):
Ну а дальше, обращение как к обычной переменной, без всякого EEPROM.

Все отлично! Спасибо! Но есть одно НООО!
Те ячейки массива которые не были инициализированны имеют одно и тоже число 535 (по крайней мере у меня на семисегментнике 3-х разрядном), а должно быть НОЛЬ...
Как быть???

Почитал Лебедева, там написано что ВСЕ элементы массива инициализируются нулями , если записать так:
#pragma warn-
eeprom unsigned int ddd[100];
#pragma warn+


У меня раньше так и было, пока я не стал использовать eeprom! Пойду в настройках компиля пошарюсь...


Последний раз редактировалось Amstron Пн янв 03, 2011 12:14:11, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:07:35 
Собутыльник Кота
Аватар пользователя

Карма: -22
Рейтинг сообщений: -63
Зарегистрирован: Вт сен 14, 2010 10:27:19
Сообщений: 2584
Рейтинг сообщения: 0
Начать думать.

_________________
Будете проходить мимо- проходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:21:48 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
Те ячейки массива которые не были инициализированны имеют одно и тоже число 535 (по крайней мере у меня на семисегментнике 3-х разрядном), а должно быть НОЛЬ... Как быть???
Устанавливаются в "0" неинициализированные ячейки глобального массива, а локального - могут содержать что угодно. Так-что, если необходимы нули, придется их "вставлять". Или, если не делали, попробуйте перед программированием стереть МК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:29:18 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
ValBag писал(а):
Amstron писал(а):
Те ячейки массива которые не были инициализированны имеют одно и тоже число 535 (по крайней мере у меня на семисегментнике 3-х разрядном), а должно быть НОЛЬ... Как быть???
Устанавливаются в "0" неинициализированные ячейки глобального массива, а локального - могут содержать что угодно. Так-что, если необходимы нули, придется их "вставлять". Или, если не делали, попробуйте перед программированием стереть МК.

Я стирать пробывал. Проверил, все ли стерто!!! Все равно ни как... Он у меня глобальный!!! И раньше им был и все было в норме!

Откройте страницу 477 в Лебедеве пособие для начинающих 2008 год. В низу есть два обзаца. ДАк в них говориться:
В последнем говорится, что все элементы массив инициализируются со значением НОЛЬ!

Почему то у меня не так, после того как я начал использовать eeprom ...


Последний раз редактировалось Amstron Пн янв 03, 2011 12:44:56, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:42:04 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Amstron писал(а):
Я стирать пробывал. Проверил, все ли стерто!!! Все равно ни как... Он у меня глобальный!!! И раньше им был и все было в норме!
Если все стерто в EEPROM, ищите "косяк": или в программе или в "полудохлом" EEPROM-е. Можете еще проделать такой фокус: В цикле запрограммируйте все члены массива нулями, а затем прочитайте EEPROM. Если все нормально, инициализируйте нужное.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:48:53 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
ValBag писал(а):
Amstron писал(а):
Я стирать пробывал. Проверил, все ли стерто!!! Все равно ни как... Он у меня глобальный!!! И раньше им был и все было в норме!
Если все стерто в EEPROM, ищите "косяк": или в программе или в "полудохлом" EEPROM-е. Можете еще проделать такой фокус: В цикле запрограммируйте все члены массива нулями, а затем прочитайте EEPROM. Если все нормально, инициализируйте нужное.

Попробывал отдельно элемент масива запрограмировать нулем - ПОЛУЧИЛОСЬ!
Странное дело... почему же у меня неинициализированные элементы инициализируются не НУЛЯМИ... а совсем другими ОДИНАКОВЫМИ числами?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:54:53 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт дек 21, 2010 21:18:52
Сообщений: 173
Рейтинг сообщения: 0
ValBag писал(а):
Amstron писал(а):
Я стирать пробывал. Проверил, все ли стерто!!! Все равно ни как... Он у меня глобальный!!! И раньше им был и все было в норме!
Если все стерто в EEPROM, ищите "косяк": или в программе или в "полудохлом" EEPROM-е. Можете еще проделать такой фокус: В цикле запрограммируйте все члены массива нулями, а затем прочитайте EEPROM. Если все нормально, инициализируйте нужное.

Считал еепром (сейчас вспомнил что в программаторе есть такое окно). Дак вот почти везде FF и только дасять элементов массива которые я инициализировал, записанны мои часла. Странно.... почему же у меня на индикацию выводится не НОЛЬ а совсем другое число((((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 03, 2011 12:59:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18401
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
потому что вы юзаете CVAVR :))) очевидно, он считает, что неинициализированные явно "переменные" в eeprom сохраняют свое значение, а оно при стирании eeprom равно 0xFF

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

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8295 ]     ... , , , 103, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y