Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.11.2011, 12:57
|
|
Прописка
Регистрация: 31.01.2011
Сообщений: 112
Сказал спасибо: 27
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
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.
|
|
|
|
18.11.2011, 13:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Vastok83
|
Добавлю что blocks.c должен быть включен в проект
|
Про это написано.
Сообщение от Vastok83
|
По моему можно без extern объявлять.
|
" Если в объявлении функции отсутствует спецификатор класса памяти, то по умолчанию принимается класс extern.", так что можно и без него.
Сообщение от Vastok83
|
текст в файла blocks.c должен начинаться с
|
Если в blocks.c в функции Blok1() будет вызов Blok2(), иначе не обязательно.
|
|
|
|
18.11.2011, 13:23
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от AJScorp
|
Исполняемый код пишете в .с файле, например blocks.c
Код:
|
void Blok1()
{
//что-то делаем
}
void Blok2()
{
//что-то делаем
} |
В файле заголовка blocks.h описываем функции, реализованные в blocks.c
[code]
#ifndef _BLOCKS_H_
#define _BLOCKS_H_
|
Спасибо огромное, до этого грызли сомнения, но теперь кое-что понял, кроме одного - а как в студии создать файл заголовка blocks.h ???
|
|
|
|
18.11.2011, 13:25
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от alvadep
|
Сейчас модно вместо простой логики ставить МК. Так вот как раз ассемблер в этом случае лучше.
|
Поймите... я могу играть в любые ворота...
Реальный пример, задокументированый на одном из форумов...
Чел обратился за помощью на форум по поводу нерабочей конструкции на PIC12F...
Грил, что спалил два ПИКА... что для новичка не составляет труда... да и тема была автомобильная...
После вскрытия HEX'а было обнаружено, что схема девайса содержит ошибки в части проца... После правки схемы и покупки нового проца ТСом всё заработало...
Фишка в том, что по HEX'у было видно, что исходник был писан на СИ (HI-TECH, если не изменяет память)...
Это я к чему... Пишущий всегда в ответе за выбор инструмента, умение им пользоваться и конечный результат... И старенький HI-TECH STD довольно достойно справляется с подобными задачами...
А вот кого винить в том, что АТМЭЛ не удосужился сделать поддержку малых камней на СИ с приемлемым результатом???
|
|
|
|
18.11.2011, 13:29
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
|
|
|
Эти 2 пользователя(ей) сказали Спасибо st_1 за это сообщение:
|
|
|
18.11.2011, 13:33
|
|
Заблокирован
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от RY723
|
Про АСМ, стандартная отговорка для тех, кто кроме АСМа ничего не знает и боится учиться.
|
Уже как шаблон, если хоть одно слово против Си в пользу Асма то сразу ярлык нечего не знает не способен.
Для меня стандартная отговорка это раньше знал, умел, пользовался, все в прошедшем времени.
Для сравнения языков нужно достичь определенного уровня, начинающие знатоки обычно "помигают светодиодами", а когда доходит дело до чего-нибудь более сложного, например, до деления переходят на Си, после чего следует вердикт Асм это для фетишистов!!!
Сообщение от RY723
|
На АСМе резко возрастает время даже на отработку простых задач.
|
Перефразирую то, что писал: Си выгоден, ланы, ЮСБ, когда единицей манипуляции есть, не бит или байт, а слово, строка, или битовая карта, также, когда над проектом работают несколько человек, стыковка кода проще.
|
|
|
|
18.11.2011, 13:48
|
|
Прописка
Регистрация: 31.01.2011
Сообщений: 112
Сказал спасибо: 27
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от AJScorp
|
иначе не обязательно.
|
Включение .h файла - хороший тон.
#ifndef _BLOCKS_H_
#define _BLOCKS_H_ - в данном конкретном случае тоже не обязательно, но отсутствие этого блока может повлечь известные проблемы, если h файл будет включен в проект в нескольких местах. Вы же добавляете его в код, несмотря на то что это и "не обязательно".
В общем я за хороший тон в примерах.
|
|
|
|
18.11.2011, 13:50
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Просто взять какой-то файл .h и отредактировать его??
|
|
|
|
18.11.2011, 13:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Vastok83
|
Включение .h файла - хороший тон.
|
Согласен, так правильнее. Я тоже за хороший тон.
|
|
|
|
18.11.2011, 13:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от roma9112
|
Просто взять какой-то файл .h и отредактировать его??
|
Разве в CV нет кнопки File-›New? Я просто не в курсе.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:21.
|
|