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

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

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

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

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

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

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

 
Опции темы
Непрочитано 18.11.2011, 12:57  
Vastok83
Прописка
 
Регистрация: 31.01.2011
Сообщений: 112
Сказал спасибо: 27
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Vastok83 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от AJScorp Посмотреть сообщение
Исполняемый код пишете в .с файле, например blocks.c
Код:
void Blok1()
{
//что-то делаем
}

void Blok2()
{
//что-то делаем
}
В файле заголовка blocks.h описываем функции, реализованные в blocks.c
Код:
#ifndef _BLOCKS_H_
#define _BLOCKS_H_

extern void Blok1();
extern void Blok2();

#endif
подключаете blocks.c к проекту, и используете
Код:
#include "lcd_lib.h"
#include ‹ioavr.h›
#include "blocks.h"

 int main(void)
 {
 LCD_Init();
 LCD_WriteData();
 .
 Blok1();
 Blok2();
 .
 .
 while(1);
 return 0;
 }
Добавлю что blocks.c должен быть включен в проект. В CodeVision есть закладочка в форме настоек проекта. Если используете свои модули нужно не забывать включать их в проект.

А вот
extern void Blok1();
По моему можно без extern объявлять. Хотя здесь могу ошибаться - нужно проверить.

И еще... текст в файла blocks.c должен начинаться с

#include "blocks.h"
....
Реклама:

Последний раз редактировалось Vastok83; 18.11.2011 в 12:59.
Vastok83 вне форума  
Непрочитано 18.11.2011, 13:15  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от Vastok83 Посмотреть сообщение
Добавлю что blocks.c должен быть включен в проект
Про это написано.

Сообщение от Vastok83 Посмотреть сообщение
По моему можно без extern объявлять.
"Если в объявлении функции отсутствует спецификатор класса памяти, то по умолчанию принимается класс extern.", так что можно и без него.

Сообщение от Vastok83 Посмотреть сообщение
текст в файла blocks.c должен начинаться с
Если в blocks.c в функции Blok1() будет вызов Blok2(), иначе не обязательно.
AJScorp вне форума  
Непрочитано 18.11.2011, 13:23  
roma9112
Гражданин KAZUS.RU
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от AJScorp Посмотреть сообщение
Исполняемый код пишете в .с файле, например blocks.c
Код:
void Blok1()
{
//что-то делаем
}

void Blok2()
{
//что-то делаем
}
В файле заголовка blocks.h описываем функции, реализованные в blocks.c
[code]
#ifndef _BLOCKS_H_
#define _BLOCKS_H_
Спасибо огромное, до этого грызли сомнения, но теперь кое-что понял, кроме одного - а как в студии создать файл заголовка blocks.h ???
roma9112 вне форума  
Непрочитано 18.11.2011, 13:25  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от alvadep Посмотреть сообщение
Сейчас модно вместо простой логики ставить МК. Так вот как раз ассемблер в этом случае лучше.

Поймите... я могу играть в любые ворота...
Реальный пример, задокументированый на одном из форумов...
Чел обратился за помощью на форум по поводу нерабочей конструкции на PIC12F...
Грил, что спалил два ПИКА... что для новичка не составляет труда... да и тема была автомобильная...
После вскрытия HEX'а было обнаружено, что схема девайса содержит ошибки в части проца... После правки схемы и покупки нового проца ТСом всё заработало...
Фишка в том, что по HEX'у было видно, что исходник был писан на СИ (HI-TECH, если не изменяет память)...
Это я к чему... Пишущий всегда в ответе за выбор инструмента, умение им пользоваться и конечный результат... И старенький HI-TECH STD довольно достойно справляется с подобными задачами...
А вот кого винить в том, что АТМЭЛ не удосужился сделать поддержку малых камней на СИ с приемлемым результатом???
st_1 вне форума  
Непрочитано 18.11.2011, 13:29  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от roma9112 Посмотреть сообщение
до этого грызли сомнения, но теперь кое-что понял
Прочтите...
http://www.pic24.ru/doku.php/osa/articles/modules
А заодно и это... пригодится...
http://www.pic24.ru/doku.php/osa/art...without_errors
http://www.pic24.ru/doku.php/osa/art...e_for_chainiks
st_1 вне форума  
Эти 2 пользователя(ей) сказали Спасибо st_1 за это сообщение:
E_C_C (18.11.2011), roma9112 (18.11.2011)
Непрочитано 18.11.2011, 13:33  
ALEKSEY188
Заблокирован
 
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
ALEKSEY188 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от RY723 Посмотреть сообщение
Про АСМ, стандартная отговорка для тех, кто кроме АСМа ничего не знает и боится учиться.
Уже как шаблон, если хоть одно слово против Си в пользу Асма то сразу ярлык нечего не знает не способен.
Для меня стандартная отговорка это раньше знал, умел, пользовался, все в прошедшем времени.
Для сравнения языков нужно достичь определенного уровня, начинающие знатоки обычно "помигают светодиодами", а когда доходит дело до чего-нибудь более сложного, например, до деления переходят на Си, после чего следует вердикт Асм это для фетишистов!!!

Сообщение от RY723 Посмотреть сообщение
На АСМе резко возрастает время даже на отработку простых задач.
Перефразирую то, что писал: Си выгоден, ланы, ЮСБ, когда единицей манипуляции есть, не бит или байт, а слово, строка, или битовая карта, также, когда над проектом работают несколько человек, стыковка кода проще.
ALEKSEY188 вне форума  
Непрочитано 18.11.2011, 13:48  
Vastok83
Прописка
 
Регистрация: 31.01.2011
Сообщений: 112
Сказал спасибо: 27
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Vastok83 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от AJScorp Посмотреть сообщение
иначе не обязательно.
Включение .h файла - хороший тон.

#ifndef _BLOCKS_H_
#define _BLOCKS_H_ - в данном конкретном случае тоже не обязательно, но отсутствие этого блока может повлечь известные проблемы, если h файл будет включен в проект в нескольких местах. Вы же добавляете его в код, несмотря на то что это и "не обязательно".

В общем я за хороший тон в примерах.
Vastok83 вне форума  
Непрочитано 18.11.2011, 13:50  
roma9112
Гражданин KAZUS.RU
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Просто взять какой-то файл .h и отредактировать его??
roma9112 вне форума  
Непрочитано 18.11.2011, 13:53  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от Vastok83 Посмотреть сообщение
Включение .h файла - хороший тон.
Согласен, так правильнее. Я тоже за хороший тон.
AJScorp вне форума  
Непрочитано 18.11.2011, 13:55  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от roma9112 Посмотреть сообщение
Просто взять какой-то файл .h и отредактировать его??
Разве в CV нет кнопки File-›New? Я просто не в курсе.
AJScorp вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите начинающему (PIC16F84A). Slava-martyn Микроконтроллеры, АЦП, память и т.д 11 09.09.2010 21:55
помогите начинающему по WinAVR umkamaks Микроконтроллеры, АЦП, память и т.д 4 05.05.2010 21:01
Помогите начинающему! kolira Микроконтроллеры, АЦП, память и т.д 6 30.01.2010 15:22
Помогите советом начинающему eler Делимся опытом 64 11.09.2008 17:28
Помогите начинающему!!!! sma-etu Микроконтроллеры, АЦП, память и т.д 2 13.12.2006 18:31


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


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