Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.11.2011, 10:50
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от AJScorp
|
Не совсем понятно, что Вы имеете в виду. Какие блоки?
|
Могу не правильно выражаться блок-модуль-библиотека, вот например кусок проги в одном из курсов по CodeVision
#include "lcd_lib.h"
#include ‹ioavr.h›
int main(void)
{
LCD_Init();
LCD_WriteData();
.
.
.
while(1);
return 0;
}
Как в Студии правильно сделать подобное, чтобы я мог свои функции типа LCD_Init(), пусть у меня Blok1(), Blok2() испльзовать аналогично в данной, а также других программах??
И если можно, поподробнее, "на пальцах"
|
|
|
|
18.11.2011, 11:34
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Эти блоки называются процедурами. Если они могут возвращать значения, значит функциями.
|
|
|
|
18.11.2011, 12:10
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Easyrider83
|
Эти блоки называются процедурами. Если они могут возвращать значения, значит функциями.
|
Я пока, что не предполагаю ничего возвращать, просто выполнять определенные действия
|
|
|
|
18.11.2011, 12:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Это называется написать свою библиотеку, для этого надо написать требуемую фукцию (и) в отдельном файле и скомпилировать в отдельную библиотеку со своим заголовочным файлом.
|
|
|
|
18.11.2011, 12:20
|
|
Заблокирован
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от RY723
|
Вы сбиваете с толку молодь зелёную. АСМ надо знать, чтобы понимать, как МК работает. Программирование на С, время экономит даже на малых проектах. А на больших - АСМ как построение коммунизма - где-то, в неопределённом будущем.
|
Время экономит знание и опыт!!! На асме хоть что-то нужно знать, а на СИ библиотека раз, библиотека, мудрый курс для начинающих, причем иногда автор курса не далеко ушел о тех, для кого пишет. По мере роста накапливается код, и в простых проектах уж точно выигрыш Си по времени сомнителен. Да и вообще размер проекта, на мой взгляд, не корректное сравнение, более важна задача, которая решается. Си выгоден там, где используются структуры, массивы, подобие баз данных или сложных меню, задачи обработки данных, статистика.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ALEKSEY188 за это сообщение:
|
|
|
18.11.2011, 12:36
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от ALEKSEY188
|
На асме хоть что-то нужно знать, а на СИ библиотека раз, библиотека, мудрый курс для начинающих, причем иногда автор курса не далеко ушел о тех, для кого пишет.
|
Здесь полностью согласен...
АСМ, пусть на минимальном уровне, знать нужно...
Сообщение от ALEKSEY188
|
По мере роста накапливается код, и в простых проектах уж точно выигрыш Си по времени сомнителен.
|
Читайте пост выше...
Копипаст с правкой, или без оной, исходника любой платформы даёт ощутимый выигрыш во времени... В простых проектах и подавно...
Вопрос только в том, что нужно чётко понимать, что копируешь...
Сообщение от ALEKSEY188
|
Да и вообще размер проекта, на мой взгляд, не корректное сравнение, более важна задача, которая решается. Си выгоден там, где используются структуры, массивы, подобие баз данных или сложных меню, задачи обработки данных, статистика.
|
АСМовые вставки в СИ - видел...
СИшные вставки в АСМе - не попадались...
Нельзя всю жизнь сидеть на проекте "Подмигни ка мне, светодиод!"...
|
|
|
|
18.11.2011, 12:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от ALEKSEY188
|
Время экономит знание и опыт!!! На асме хоть что-то нужно знать, а на СИ библиотека раз, библиотека, мудрый курс для начинающих, причем иногда автор курса не далеко ушел о тех, для кого пишет. По мере роста накапливается код, и в простых проектах уж точно выигрыш Си по времени сомнителен. Да и вообще размер проекта, на мой взгляд, не корректное сравнение, более важна задача, которая решается. Си выгоден там, где используются структуры, массивы, подобие баз данных или сложных меню, задачи обработки данных, статистика.
|
С этим нельзя не согласиться.
|
|
|
|
18.11.2011, 12:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от roma9112
|
чтобы я мог свои функции типа LCD_Init(), пусть у меня , Blok2() испльзовать аналогично в данной, а также других программах??
|
Исполняемый код пишете в .с файле, например 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;
} |
|
|
|
Сказали "Спасибо" AJScorp
|
|
|
18.11.2011, 12:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от st_1
|
Нельзя всю жизнь сидеть на проекте "Подмигни ка мне, светодиод!"...
|
Сейчас модно вместо простой логики ставить МК. Так вот как раз ассемблер в этом случае лучше.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
18.11.2011, 12:54
|
|
Заблокирован
Регистрация: 08.08.2007
Сообщений: 2,843
Сказал спасибо: 378
Сказали Спасибо 1,368 раз(а) в 746 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от ALEKSEY188
|
Время экономит знание и опыт!!! На асме хоть что-то нужно знать, а на СИ библиотека раз, библиотека, мудрый курс для начинающих, причем иногда автор курса не далеко ушел о тех, для кого пишет. По мере роста накапливается код, и в простых проектах уж точно выигрыш Си по времени сомнителен. Да и вообще размер проекта, на мой взгляд, не корректное сравнение, более важна задача, которая решается. Си выгоден там, где используются структуры, массивы, подобие баз данных или сложных меню, задачи обработки данных, статистика.
|
Си выгоден везде, даже на очень малых проектах. Про АСМ, стандартная отговорка для тех, кто кроме АСМа ничего не знает и боится учиться.
Что-то знать плохо везде, в т.ч. и на АСМе. Матчасть надо знать и хорошо. А знать "что-то" - как раз путь к неудаче. На АСМе резко возрастает время даже на отработку простых задач. И на Си необходимо отлично знать работу МК. На Си код более доступен для восприятия, особенно при корректировке после перерыва. Сам начинал с АСМа и хорошо знаю что это такое. После перехода на Си, вспоминаю об АСМе, как о дурном сне. Если на Си также только знать "что-то", то действительно, на него не стоит переходить. Кому не жалко своего времени - вперёд на АСМ!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:19.
|
|