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

Часы Реального Времени


Falkon_99

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

Для начала почитайте здесь.

В IAR можно для перевода МК в режим сна воспользоваться предопределенной функцией "__sleep();"

Перед тем как вызывать эту функцию не забудьте задать правильно режим сна (регистр MCUCR)

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

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

Falkon_99, переделал Ваш проект в много файловый, рекомендую и в дальнейшим всегда разбивать функциональность по разным файлам, если начнете заниматься программированием вспомните меня добром словом. :D

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

Файл "PrClock_dbg.aps" проект для AVR Studio он запустит симулятор (AVR Studio должна быть установлена)

В файле "Hardware.h" я обычно прописываю макросы работы с портами (для Вашего проекта не стал) вот пример:

#define RELAY PORTC
#define PIN_RELAY_U 6
#define RELAY_OFF RELAY &= ~Bit(PIN_RELAY_U)
#define RELAY_ON RELAY |= Bit(PIN_RELAY_U)

очень помогает когда начинаешь заниматься трассировкой платы. Для переноса выхода/входа на другие пины или порт достаточно изменить в одном месте запись, а не лазить по всей программе. Да и читабельность кода выше, что делает команда RELAY_OFF я и через десять лет скажу :D

Clock.zip

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

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

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

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

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

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

в AVR Studio я не очень понимаю. там открываются сразу все части программы:

main - записаны переменные

startup - настройки регистров

ну а timer0, timer1, klawa - отдельные части программы.

так вот, дальше теперь нужно компилировать этой программой?

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

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

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

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

упс! Обычно AVR Studio знают все:rolleyes:

Этот симулятор в отличии от протеуса низкоуровневый. Кнопка "F11" позволяет сделать шаг выполнения. В правом углу основные параметры МК в левом регистры периферии. В центре окна с кодом. Выполняя программу симулятор показывает как меняются данные в регистрах, памяти. Для пере компиляции надо запустить IAR и пере компилировать в нем. Симулятор автоматом должен понять, что произошло изменения в коде и предложит перезапустить "прошивку"

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

а через IAR открывать WClock.eww?

он не открывается(( или создать новый файл для IAR, только какую из подпрограмм туда забросить, наверное startup.h

на счет клавиши F11, выполняется одна команда МК, у меня это 50 мкс.

а чтоб дойти до прерывания есть другая клавиша? уж очень долго нужно держать F11 :unsure:

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

Если не открывается, то у Вас скорей всего более старая версия компилятора у меня 5.4

Пере создайте проект и добавите в него все файлы "с" и "h"

>>а чтоб дойти до прерывания есть другая клавиша? уж очень долго нужно держать F11

F5 - будет выполнять пока не остановите или до точки останова

http://easyelectroni...dio-likbez.html

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

прошу прощения за кучу детских вопросов, что означают следующие строки:

#ifndef __HARDWARE_H__

#define __HARDWARE_H__

#define Bit(n) (1 << (n))

#endif

И еще, в каждом файлике есть ссылки на другие. они подключаются как библиотеки. А в чем разница между файлами .h и .c

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

#ifndef __HARDWARE_H__
#define __HARDWARE_H__
// Здесь объявления функций, переменных
#endif

Защитный макрос предназначенный для предотвращения множественного включения заголовочных файлов.

__HARDWARE_H__ - любая метка(переменная)

Препроцессор встретив команду #ifndef __HARDWARE_H__ проверит определена ли метка __HARDWARE_H__

Если ДА, то пропустит все команды до #endif

Если НЕТ то создаст метку __HARDWARE_H__ и развернет(включит для компилятора) все что до #endif

#define Bit(n) (1 << (n))

Макрос для вот таких конструкций "#define RELAY_OFF RELAY &= ~Bit(PIN_RELAY_U)" он их развернет в #define RELAY_OFF RELAY &= ~ (1 << (PIN_RELAY_U))

>>А в чем разница между файлами .h и .c

В языке СИ есть соглашения которое гласит "В файлы с расширением .h пишутся прототипы функций, определение переменных (не всегда), макросы, а в файлы с расширением .c исполняемый код"

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

А смысл тогда в этих командах с метками? Если метка есть то вложенная программа выполняется, если нет то метка все равно создаётся, и результат тот же? :unsure:

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

Если НЕТ то создаст метку __HARDWARE_H__ и развернет(включит для компилятора) все что до #endif

И все выполнит, если вам так понятней.

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

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

Уважаемый rtfcnf, не могу разобратся с много файловой программой.

в AVR все работает, и симулирует...

в IAR открыл все файлы, компилит без ошибок, но файл с разрешением .d90 пустой. Тоесть при открытии его proteus или AVR ничего не происходит

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

IAR умеет создавать выходные файлы в различных форматах. Для работы с стимулятором AVR Studio я соответственно и настроил выходной формат файла. Для того что бы выходной файл понял протеус (кстати этот же формат подойдет и для большинства программаторов) нужно IAR соответственно настроить. Здесь я сделаю маленькое отступление. Каждый раз лазить в настройки компилятора не оправданное растрачивание времени поэтому в IAR есть такое понятие как профили. По умолчанию для каждого проекта создается два профиля Debug и Release. Можно создать еще, но оно нам сейчас не надо. Для каждого такого профиля можно создать свой набор настроек, компилятора, линковщика и среды. Профиль Debug я уже настроил для работы с AVR Studio поэтому переключаемся на профиль Release и настраиваем его для создания файла (прошивки) для протеуса.

Переключаем профиль в Release

066826cd0b254d0181777f557834ed4d.jpg

Заходим в опции проекта

Во вкладке “General Options” выберем тип МК

8cc6f29faf6d57b9820725210767b92a.jpg

Во вкладке “Linker” в опции “Output format” выставим “intel-extended”

b6448795f5838faef739d43c27d93957.jpg

Запоминаем, жмем F7 и в папки “Release” получаем искомое.

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

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

вот последовательность моих действий:

открываю IAR, создаю новый проэкт

далее выбираю С++\ AVR Studio 4

удаляю файл main.cpp и открываю все 11 файлов .c .h

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

Пробовал и с Releas и Debug. Файлы .d90 и .hex получаются пустыми

Вот то что у меня получилось

Clock2.rar

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

Извиняюсь за задержку, но я неделю на работу не ходил, первый день однако.

Порядок действия.

К AVR Studio даже не подходим!!!!

1. Создаем проект в IAR

2. Добавляем в проект все файлы с расширением .с и .h (Add Files ...)

3. Настраиваем профили. Профиль "Release" смотрите выше. Для профиля "Debug" ставим тип процессора. Во вкладке “Linker” в опции “Output format” выставим “ubrof 8”, а также ставим галочку в пункте "Override default"

Все мы получили проект с настроенными профилями. В этом IAR проекте мы пишем и компилируем программу.

Как сделаете и всё будет компилироваться продолжим дальше, а то у нас возникает не недопонимания, из-за того что некоторые очевидные для меня вещи, я не рассказываю, считая что их должны знать все. Извиняюсь.

Будем идти по шагам.

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

или я пенёк, или IAR выделывается(

хотя скачал уже другую версию 5.4

Он как будто не видит эти добавленные файлы .h .c

Делаю все по пунктам. Кстати эти настройки профилей Debug и Release, о которых Вы писали стоят по умолчанию...

Все мы получили проект с настроенными профилями. В этом IAR проекте мы пишем и компилируем программу.

поподробней пожалуста... еще чтото писать дополнительно нужно??

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

В выходные распишу очень подробно со скриншотами.

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

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

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

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

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

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

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

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

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

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

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

    • Наверное существуют, но как реализовать данный алгоритм для самодельной конструкции ? Но постоянный и пульсирующий то же не одно и то же. В том то и проблема . КАК его мерить ?
    • Переменный и пульсирующий постоянный ток- не одно и то же.
    • Я не плавную регулировку тока. Я про увеличить ток заряда с 6 до 10 ампер, и всё. Подобрать ёмкости C14/C15 - по каким параметрам? Поменять ключи на более низкоомные - я хотел поставить например BUV48A или 2SC3320. Пойдут на замену 2SC2335 которые сейчас стоят? А вот этот самый "резистор обмоток связи R19" уже достал! На всех зарядках он набран из 8, бывает из 10 SMD резисторов под которыми выгорает текстолит. Падла греется до 150 градусов. В этом экземпляре, стыдно даже писать его название, Striver PW-150 всё по другому. Зарядка собрана этажеркой, да так криво и нелепо, что выглядит в 100 раз хуже многих самоделок. Так вот этот "резистор обмоток связи R19" тут стоит обычный на 1 или 2 Вт - кетайский, его хрен поймёшь. Я поставил керамический - цементный на 5 Вт - нагрев 75 градусов при 5 амперах. Что ж туда ставить то? 10-20 ваттные проволочные? А вот с делителем R4/R5/R6 я не согласен! Тут за пороги вкл-выкл циклов заряд - пауза отвечает другая часть микросхемы. В этом я уже убедился, регулировку порогов делаю подстроечным резистором на 2 ноге 393. В этих зарядках и схемах часто перепутаны компараторы. Ваше утверждение про 5, а точнее 6 ногу относиться к другим схемам и зарядкам.  Резистором R7 определяется разница между напряжением окончания и начала зарядки. А вот это ценная информация - никак не мог понять как сократить минимальный и максимальный порог заряда.
    • Вообщем буду моделировать цепи включения и авто выключения 
    • @Less Если между собой созванивать контактные площадки мест под конденсаторы, то в обе стороны, и созванивается на GND. В районе антенны блютуз подозрения сняты, там проходит жёлтая дорожка, это не КЗ Остаётся подозрение на конденсатор в районе диодов, они звенят в обе стороны 196, сниму и проверю позднее. Резистор звенящий в 003 не звенит на GND.
    • Да скорость в модуле я сразу переключил на 9600 при помощи терминала из компа.  
    • Для таких целей существуют фотоамперметры.  В основе  лампочка , световой поток которой при прохождении тока сложной формы фиксируется фотоэлементом. Затем неизвестный ток заменяется известным и добиваются тех же показаний фотоэлемента, но  уже при токе , измеренным обычным амперметром.
×
×
  • Создать...