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

Два Файла Main.c В Winavr


Br.Misha

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

Hi!

Вобщем есть у меня немаленькая программа и не очень удобно писать основной код(всмысле не считая подключеных библиотек) в однов *.с файле.

Можно ли как то сделать ещё один файл в котором будет часть основного кода и чтобы компил думал что это один файл?

Знаю, немного непонятно обьяснил, вот например:

Есть у меня файл main.c в котором есть главная ф-ция(int main (void)) и в том же файле много других функций и переменных. Так вот мне хочеться чтобы в одном файле был код в котором была главная ф-ция а во втором остальные функции и некоторые переменные, чтобы без всяких *.h файлов.

Заранее спасиба!

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

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

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

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

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

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

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

Простое решение проблемы ( рабочее, но идеологически неправильное )

Пишешь в тексте программы

#include "main2.c"

и всё. Вместо этой строки препроцессор вставит содержимое твоего файла main2.c , главное чтобы файл с таким именем присутствовал в этой же папке.

Пока ты жив, надежда есть.

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

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

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

mazzi, именно так я когда то делал(ещё када начинал МК изучать) но вот почему ещё ни в одном исходнике не видел чтобы подключали *.с файлы. может тут есть какой та косяк(всмысле при подключении *.с)?

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

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

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

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

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

Есть такое понятие как форвардинг. Это когда ты прописываешь прототип функции раньше её реализации.

Например:

void func1( void ); // это прототип, он должен быть в начале файла до первого использования функции.

// Это и есть объявление функции, которое просит у тебя компилятор.

.

.

// здесь всякое разное

.

.

void func1( void ) // это реализация функции можно ставить даже в конце файла

{

x=y+z;

}

Пока ты жив, надежда есть.

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

это я уже давно знаю, тока не знал что оно называеться прототип.

естественно в файле main2.c я обьявил эту ф-цию после обьявлении переменных а потом уже писал саму ф-ция но компил всеравно показывает ту же ошибку. Я ещё пробовал обьявлять ф-цию. в главном файле (main.c) - эфект тот же:(

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

А может перестать извращаться и всё-таки разбить программу на функциональные модули? Как, например, всю работу USART запихать в usart.c/usart.h, с LCD - lcd.c/lcd.h и т.д.

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

естественно в файле main2.c я обьявил эту ф-цию после обьявлении переменных а потом уже писал саму ф-ция но компил всеравно показывает ту же ошибку. Я ещё пробовал обьявлять ф-цию. в главном файле (main.c) - эфект тот же:(

В главном файле тоже нужно объявлять эту функцию, но с префиксом extern

extern void func1( void );

Пока ты жив, надежда есть.

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

Уж лучше ему больше ничего не советуйте.. Пусть учится делать правильно... А то потом всех опять достанет своими вопросами "сделал вот твак вот и оно не работает Почему???".....

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

Если всё время совершенствоваться и практиковаться, то к хорошему стилю программирования прийдёшь поневоле.

Пока ты жив, надежда есть.

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

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

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

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

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

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

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

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

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

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

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

    • Здравствуйте . Вот нашёл похожую тему ... Я всё борюсь с магнитофоном СКИФ М-310С-2 (мой любимый старичёк, ещё работает). У меня вопрос следующий : как можно отстроить ГСП операясь только на напряжения (осцилографа к сожелению ни имею). Вообще неисправность : записанные на данном аппарате кассеты звучат без показаний индикации и грязное звучание. Хотя сам процесс записи - звук кристально чистый и индикаторы показывают настроенный уровень. Что касается других кассет которые записаны на проффесиональных дэках - там всё чётко, хороший звук, мощь, идикация ..... Всё как доктор прописал. Скажу ещё одну вещь. Менял головки универсальную и стирающую , вероятно накрутил подстроечники .
    • Меня просто смутило Raa.  У меня кстати тут несколько поменялось техническое задание. Воткнули с тестем вместо ГУ-50 КТ-88 через переходники и звук вроде как больше понравился. Ну и порешали, что лучше с ними звучит. В общем, конечный вариант собираю на КТ-88. В целом их и параллелить-то необязательно. Есть более мощные КТ-150, но просто стратегический запас КТшек уже есть в наличии, поэтому решили на них
    • Щуп Р6100 для осциллографа с высокоомным входом
    • Что конкретно не нравиться, покажи, чтобы не испепелить хоть одну плату
    • Автору искать нормального мастера для его хотелок. Нужно понимать что, куда и как делать. И тогда все осуществимо. В молодости (по заказам товарищей) передние панели от тела магнитофонов кабелем относил на ДВА МЕТРА (естественно с доработкой аппаратов) и все стабильно работало годами.  И никакие твердотельные реле там даром не нужны. С такими бестолковыми экспериментами можно и аппарат убить. Единственный вариант это к толковому мастеру.   
    • Почему то думал, что там РК 50. Из него и мастырил щуп для С1-49. Сигналы 133и 176 серий хватало посмотреть.
    • Смысл отвода витков таков что я не знаю материала сердечника точно, и поэтому в программе тяжело рассчитать, а с помощью отмотки витков можно узнать насыщение сердечника тем самым подобрать оптимальное их количество... Клетка на осциллографе 0,5 вольта.. резистор в первичке Если не ошибаюсь 1 ом, амплитуда 0,6 в, тогда получается ток 0,6 А на холостом...   Антоха Спасибо посмотрю видео
×
×
  • Создать...