Перейти к содержанию

Вопросы от начинающих по МК


Рекомендуемые сообщения

5 часов назад, IMXO сказал:
if (myFlags.flagFullLight) {
            myFlags.OffLight=1;
            myFlags.FullLight=0;
            OCR0A = 0;

Просто я пытаюсь научиться экономить место. До этого писал для Ардуино Нано, так там мне и 32 кб мало было :) .  Все мои флаги занимают 1 байт, в твоем варианте - на каждый флаг по байту (unsigned char), правильно?   Но твоя запись гораздо удобней и информативней, чем моя. Надо запомнить.

 

5 часов назад, IMXO сказал:

ну и перед тем как отправить в сон вроде нужно отключить всю периферию и  принудительно очистить флаг ногодрыга

Перифирия отключается ACSR |= (1 << ACD);  ADCSRA &= ~(1 << ADEN). Плюс незанятые ноги делаю входом и ставлю подтяжку (100-200 мкА экономия).

 

Если оставить только PCINT0_vect прерывание, то в сон уходит (около 20 мкА), правда с выходом проблема: по первому нажатию включается вся перифирия (около 1 мА), и только по второму нажатию включается фонарик. Наверное виной всему стабилизация частоты мк при выходе со сна(0-8 сек). 

Теперь надо научиться включать фонарик с первого нажатия и совместить все это со вторым прерыванием TIM0_OVF_vect.

P.S. про собаку читал, но пока решил не добавлять себе еще одно прерывание, дабы не запутаться.

 

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

1 час назад, Siemenstim сказал:

 правильно?

Чтобы экономить, для этого надо учебники по Си читать :) Естественно нет. Это называецо "Битовые поля" и являются стандартом языка Си.
 

Цитата

Битовое поле может быть членом структуры или объединения. Оно определяет длину поля в битах. Общий вид определения битового поля такой:

тип имя : длина;

Здесь тип означает тип битового поля, а длина — количество бит, которые занимает это поле. Тип битового поля может быть int, signed или unsigned.

так что, размер переменной как у у тебя 8бит. и связанно это в большей степени с разрядностью МК.
А unsigned char стоит потому, что не все компиляторы нормально воспринимают просто  unsigned. 

Изменено пользователем IMXO
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

 

Мужики подскажите плиз. В ремонте преобразователь напряжения 12 в 220.  Я не знаю, что контроллер так кушал от кренки на 5в, но она была аж синяя (но живая) , не управляет мосфетами (преобразователь молчит), схемы нет на девайс. Контроллер EM78p458apj-g

На 16 лапе +5в есть. Далее я профан, вроде кварцевый резонатор на 3 лапках. ZTT 4.00 mg средняя лапа на земле крайние на 18 и 17, осликом стал относительно земли на 17 и 18, какието иголки и частота ослика то 0 до 17, то 32кГц. ни каких MG. По тестеру по 0,47в. Подскажите дальнейший порядок действий с контролером. Нужно понять если жив то хорошо, если труп то тоже новость. 

Спойлер

200911911733260.jpg.ee9fa63750853ff541ada1548e3d5e41.jpg

Что не делается, то к лучшему !!!

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Добрый день .

AVR assembler

.equ KADC=47
.equ U28      = KADC*2.8

Такие строчки вызывают сообщение "float - > int cast , truncated" .

Что означает  рекомендацию избавиться от запятой в результате выражения . 

Как это сделать ?

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, dodik сказал:

Так выходит

Без надобности не стоит "плавающую точку" притягивать к ассемблеру. Обходитесь целыми числами, если есть такая возможность.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

21 минуту назад, ДядяВован сказал:

если есть такая возможность.

А если нет ?

Только что, Геннадий сказал:

планирует использовать этот коэффициент

Уже используется ,   и никаких замечаний  от редактора.

Работало и как писал в начале,  но с предупреждением "float - > int cast , truncated" .

.equ KADC=473/10

.equ U28      = KADC*28/10
.equ U30      = KADC*30/10
.equ U32      = KADC*32/10
.equ U33      = KADC*33/10
.equ U34      = KADC*34/10
.equ U36      = KADC*36/10
.equ U38      = KADC*38/10
.equ U40      = KADC*40/10

 

Это метки напряжений для светодиодной линейки .

 КАДС  учитывает входной делитель , разрядность АЦП и опорное напряжение . 

Ссылка на комментарий
Поделиться на другие сайты

11 минут назад, dodik сказал:

никаких замечаний  от редактора

Кто Ваш редактор?

12 минут назад, dodik сказал:

предупреждением "float - > int cast , truncated"

Всё в порядке, предупреждение это не ошибка. Просто компилятор обращает внимание, что он результат выражения привёл к целому числу.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, dodik сказал:

 КАДС  учитывает входной делитель , разрядность АЦП и опорное напряжение . 

и в итоге получаете погоду на Марсе...
.equ KADC=473/10 это равно 47...
.equ U33 = KADC*33/10 это равно 155...
а должно быть 473*33/100=156,
ну и тд.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, ДядяВован сказал:

Всё в порядке, предупреждение это не ошибка.

Этих предупреждений было слишком много .

 

1 минуту назад, ДядяВован сказал:

Кто Ваш редактор?

Кто-то из авторов асма . При случае узнаю :rolleyes:

2 минуты назад, IMXO сказал:

а должно быть 473*33/100=156,

Хотел провести анализ , что получается и как можно улучшить . Но Вы опередели . Спасибо !

Ссылка на комментарий
Поделиться на другие сайты

для целых есть простое правило: для уменьшения погрешности сначала умножение потом деление.
ну создание и расчет констант лучше формировать препроцессором в виде #define

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ДядяВован сказал:

Тогда речь о компиляторе,

Я так упрощенно назвал компилятор , чтоб не приводить полностью название .   В названии компилятора "asm" имеется . 

AVRASM: AVR macro assembler 2.2.8 (build 80 Jan 14 2020 18:27:50)

А в компилятор код попадает все одно через редактор .

Да и так ли важно , где формируются предупреждения , в редакторе или компиляторе ?

 

 

Изменено пользователем dodik
Ссылка на комментарий
Поделиться на другие сайты

58 минут назад, dodik сказал:

так ли важно

Конечно важно! Мы же на техническом форуме. Если редактор выдаёт предупреждения это одно, компилятор - другое. Можно не приводить полные названия редактора и компилятора, но смешивать эти термины не комильфо.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, Геннадий сказал:

Интересно, как @dodik планирует использовать этот коэффициент в Ассме.

А что такого? Дробное число в формате float - это всего лишь специальным образом представленное число. Если компилятор распознает флоат и может его упаковать как положено - то почему бы и нет? 

Редактор - это редактор. Можно вообще в "Блокноке" писать. Или в "Word"-е. А распознает написанное и обрабатывает - конечно же компилятор.

Ссылка на комментарий
Поделиться на другие сайты

в "Word"-е - нельзя. компилятор не понимает формат ворда.

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, GPIOA сказал:

А что такого? Если компилятор распознает флоат и может его упаковать как положено - то почему бы и нет?

Разве 8-битные AVR имеют математику для работы с плавающей точкой? У них есть FPU?

Ссылка на комментарий
Поделиться на другие сайты

А что, нельзя написать самостоятельно работу с float? Есть даже 32-битные без FPU - и ничо, прекрасно работают.

В word-е можно набирать текст, а сохранить его в виде простого текста txt/

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, ДядяВован сказал:

Если редактор выдаёт предупреждения это одно, компилятор - другое

...смешивать эти термины не комильфо.

Редактор замечания выдает подсветкой , а после компиляции  сообщаются ошибки или предупреждения . Сложно не заметить разницу :rolleyes:

А для проверки результатов компиляции , если не будет ошибок, можно включить симуляцию . Я в курсе ...  

Вопрос был как средствами встроенного редактора создать серию констант с одинаковым множителем без портянки предупреждений . Несколько форумчан поняли .

Еще раз спасибо . Константы имеют значения более 100 . Для контроля аккумулятора дискретности пока достаточно . Для большей точности можно использовать двух-трех байтовые числа.   

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, dodik сказал:

можно включить симуляцию . Я в курсе

А я нет. У меня редактор vim и компилятор gavrasm, а Вы оказывается ведёте речь о среде разработки, где всё "в одном флаконе".
Я не придираюсь, просто топик для начинающих и их не следует дезинформировать. 

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...