Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.01.2011, 16:37  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

7Fantomas7, Пиши переменные прямо в h файл. Область видимости будет глобальной
Реклама:
__________________
Найди путь или проложи сам!
MasterMushi вне форума  
Непрочитано 22.01.2011, 16:44  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

Может так будет понятно. Во вложении проект.
Во вкладке notes то что я пытаюсь развалять.
Проект содержит 3 файла uprablenieCPU_simulation, peremenie_const, start_310. Не трудно догадаться что peremenie_const.c содержит переменные, сейчас 2 шт. При проверке на ошибки uprablenieCPU_simulation.c где расположена main ошибок нет, при проверке на ошибки start_310 ошибки есть, ненаходит переменные и не находит delay. Как решить проблему?
Вложения:
Тип файла: rar Simulation.rar (119.5 Кб, 53 просмотров)
7Fantomas7 вне форума  
Непрочитано 22.01.2011, 16:46  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

MasterMushi,
Понял, вот так и сразу надо было. Сейчас попробую. А можно и функции писать только в h файлы без сишных и просто глобально приинклюдивать.
7Fantomas7 вне форума  
Непрочитано 22.01.2011, 16:57  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

В путях проекта прописать , где находится 310 Project-Configure- C compiler-Paths
и в Start310.c добавить #include ‹delay.h›
#include ‹mega8535.h›

и zadanie_I zadanie_U нигде не определены

peremenie_konst.c не то. нужно сделать peremenie_konst.h по всем правилам, туда вставить определения переменных (без extern - extern- говорит, что нужно искать в хидерах где-то)
в "upravlenie CPU_Simulation.c" вставить #include "peremenie_konst.h",
сам файл
//--- peremenie_konst.h
...
unsigned char zadanie_I; //переменная задание для источника тока
unsigned char zadanie_U; //переменная задание для источника напряжения
//...

и затем в start_310.c
вставить
extern unsigned char zadanie_I; //переменная задание для источника тока
extern unsigned char zadanie_U; //переменная задание для источника напряжения


Вот исправленный , только путь подправьте к Functions , я свой абсолютный поставил
Вложения:
Тип файла: rar Simulation.rar (160.0 Кб, 62 просмотров)

Последний раз редактировалось OlegNZH; 22.01.2011 в 17:22.
OlegNZH вне форума  
Непрочитано 22.01.2011, 17:23  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

Цитата:
В путях проекта прописать , где находится 310
Прописан это в конфигураторе в inpyt files видно, проверил еще раз. Просто видимо путь не соответсятвует на Вашем компьютере.
Цитата:
и в Start310.c добавить #include ‹delay.h›
Тоесть во все файлы подобного рода нужно приладить необходимые хидеры?
Цитата:
и zadanie_I zadanie_U нигде не определены
Так это и есть те самые глобальные переменные которые я не знаю как вынести в отдельный файл и чтоб они были видны во всех функциях. По непосредственно функциям вопросов нет, я уже понял.
MasterMushi,
Цитата:
Пиши переменные прямо в h файл. Область видимости будет глобальной
сделал так
#ifndef _peremenie_const_INCLUDED_
#define _peremenie_const_INCLUDED_
#pragma used+
extern unsigned char zadanie_I; //переменная задание для источника тока
extern unsigned char zadanie_U; //переменная задание для источника напряжения

#pragma used-
#endif
Чет бока не видит их start_310
Или их тоже в этой функции приинклюдить нужно?

Последний раз редактировалось 7Fantomas7; 22.01.2011 в 17:26.
7Fantomas7 вне форума  
Непрочитано 22.01.2011, 17:26  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

не в input files а в Project-Configure- C compiler-Paths .
Переменные я уже вынес в peremenie_konst.h (peremenie_konst.с- не нужен - удалить из input files , peremenie_konst.h прописан через #include)

Последний раз редактировалось OlegNZH; 22.01.2011 в 17:29.
OlegNZH вне форума  
Непрочитано 22.01.2011, 19:55  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

7Fantomas7, Не пиши ты extern и прагмовые. Если используеш CVAVR то твой код должен выглядеть так:

PHP код:


//Char в CVAVR по умолчанию UNSIGNED тоесть можно не терять времени и сокращать тексты. 

#ifndef _peremenie_const_INCLUDED_
#define _peremenie_const_INCLUDED_
 
char zadanie_I//переменная задание для источника тока
 
char zadanie_U//переменная задание для источника напряжения
#endif 
В языке С заголовочный файл имеет фактически такой же значение как и просто С файл. Тоесть прямо в него можно писать тела функций.

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

Структурируя проект не надо сильно увлекаться связками файлов иначе в конце получится фатально неудобная конструкция которая мало того что будет дольше компилироваться так еще и будет код жрать больше стека.

CVAVR 2.05 кстати более оптимизирован уже по финальному машиному коду. Так что советую писать на нем.

Да и чуть не забыл - в CVAVR все переменные обьявляются как обязательные. Даже если вы нигде не упомянули в коде объявленную переменную, линкер ее не выкинет.
Не могу сказать того же про функции. Линкер в 2.05 сильно режет функции поэтому если уверены что будет внешний или хитрый вызов вашей функции через передачу в АСМ коде, советую сделать ее объявление "явным"
__________________
Найди путь или проложи сам!
MasterMushi вне форума  
Непрочитано 22.01.2011, 20:09  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

Ну и каким макаром без extern для глобальных обойтись? Интересно...
(а код, который привели-я именно так и подправил - post #24)
OlegNZH вне форума  
Непрочитано 22.01.2011, 20:20  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

OlegNZH,
Если мы переменные обьявляем напрямую в заголовочном файле без использования С файла с "телами" переменных, то extern не нужен.

Внешние С файлы удобно если ничего не будет меняться вообще. А если надо добавить в библиотеку переменную - придется править заголовочный файл и С файл. Это 2 закладки в редакторе. Добавим 3-4 библиотеки и получаем уже 6-8 закладок. Далее любое изменение похоже на садо мазохизм. Перекликивать закладки, скролить куски кода, править возвращаться из за ошибки все по новой.

Если все писать прямо в заголовочных то и текста меньше и в редакторе удобнее все это дело править.
__________________
Найди путь или проложи сам!
MasterMushi вне форума  
Непрочитано 22.01.2011, 20:29  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: CodeVisionAVR добавление файлов в проект, прошу помочь

А каким образом обращаться к этим глобальным переменным из 2- разных файлов? делать в каждом #include ‹var_const.h›? - не пойдёт- 2 раза получится определение переменных -redefined! Это в CV128 было хитро- там выделялся Главный файл main.c , и в проекте подфайлы, затем перед компиляцией все! файлы собирались в ОДИН!(к main.c) и потом уже компилировались. Там-да , без extern-a - всё находится в одной куче! нет никаких перекрёстных ссылок. В 204 уже всё более-менее честно.
OlegNZH вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помочь в поисках схемы DVD рекодера Grundig GDR 5500 sergeyaf Поиск схем. Делимся схемами 6 30.07.2018 20:09
if с условием прошу помочь 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 5 12.11.2010 13:18
AT Mega8 вольтметр прошу помочь 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 47 23.05.2010 16:16


Часовой пояс GMT +4, время: 07:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot