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

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

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

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

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

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

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

 
Опции темы

как компилировать не поможете?

Непрочитано 07.09.2009, 13:07  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Сообщение от dexa Посмотреть сообщение
1 Как определить максимальную и минимальную задержи МК исходя из частоты кварца?
NM123 в своём стиле, затыкали парня ссылками..., нет что бы помочь....

код для IAR в прикреплёном - настроеный проект для IAR.
Код:
/************************************************** *****
ПРИМЕР 1 :: ВРАЩЕНИЕ МОТОРАМИ ВПЕРЕД-НАЗАД :: MYROBOT.RU
************************************************** ******/ 
#define fclc 8000000		//Hz
#include "iotiny2313.h"
//библиотеки компилятора
#include ‹inavr.h›
#include "main.h"
//-------------------------------------------------------------------------------------------------
//для удобства и читабельности обьявляем ножки портов----------------------------------------------
#define pin_out 1			//AVR для OUT
#define pin_inp 0			//AVR для IN
#define forward0_dir DDRD_Bit0		//ножки для направленния
#define forward1_dir DDRD_Bit1
#define reard0_dir DDRD_Bit2
#define reard1_dir DDRD_Bit3

#define forward0_out PORTD_Bit0		//ножки для вывода
#define forward1_out PORTD_Bit1
#define reard0_out PORTD_Bit2
#define reard1_out PORTD_Bit3
//-------------------------------------------------------------------------------------------------
void main(void){// начало основной программы
//конфигурируем ножки на вывод  
	forward0_dir=pin_out;		//ножки для направленния
	forward1_dir=pin_out;		//ножки для направленния
	reard0_dir=pin_out;
	reard1_dir=pin_out;
while (1) { // Бесконечный цикл
// ---------- вращаем моторы вперед 1 сек ----------
forward0_out=1; // установить "1" на линии 1 порта C
forward1_out=0; // установить "0" на линии 2 порта C
reard0_out=1; // установить "1" на линии 3 порта C
reard1_out=0; // установить "0" на линии 4 порта C
// --------------------------------------------------
delay_ms(1000); // ждем 1 сек.
// ---------- вращаем моторы назад 1 сек ----------
forward0_out=1; // установить "1" на линии 1 порта C
forward1_out=0; // установить "0" на линии 2 порта C
reard0_out=1; // установить "1" на линии 3 порта C
reard1_out=0; // установить "0" на линии 4 порта C
// --------------------------------------------------
delay_ms(1000); // ждем 1 сек.
// --------------------------------------------------
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
Реклама:
picavr вне форума  
Непрочитано 07.09.2009, 13:14  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: как компилировать не поможете?

NM123 в своём стиле, затыкали парня ссылками..., нет что бы помочь....

код для IAR в прикреплёном - настроеный проект для IAR.
Код:
/************************************************** *****
ПРИМЕР 1 :: ВРАЩЕНИЕ МОТОРАМИ ВПЕРЕД-НАЗАД :: MYROBOT.RU
************************************************** ******/ 
#define fclc 8000000		//Hz
#include "iotiny2313.h"
//библиотеки компилятора
#include ‹inavr.h›
#include "main.h"
//-------------------------------------------------------------------------------------------------
//для удобства и читабельности обьявляем ножки портов----------------------------------------------
#define pin_out 1			//AVR для OUT
#define pin_inp 0			//AVR для IN
#define forward0_dir DDRD_Bit0		//ножки для направленния
#define forward1_dir DDRD_Bit1
#define reard0_dir DDRD_Bit2
#define reard1_dir DDRD_Bit3

#define forward0_out PORTD_Bit0		//ножки для вывода
#define forward1_out PORTD_Bit1
#define reard0_out PORTD_Bit2
#define reard1_out PORTD_Bit3
//-------------------------------------------------------------------------------------------------
void main(void){// начало основной программы
//конфигурируем ножки на вывод  
	forward0_dir=pin_out;		//ножки для направленния
	forward1_dir=pin_out;		//ножки для направленния
	reard0_dir=pin_out;
	reard1_dir=pin_out;
while (1) { // Бесконечный цикл
// ---------- вращаем моторы вперед 1 сек ----------
forward0_out=1; // установить "1" на линии 1 порта C
forward1_out=0; // установить "0" на линии 2 порта C
reard0_out=1; // установить "1" на линии 3 порта C
reard1_out=0; // установить "0" на линии 4 порта C
// --------------------------------------------------
delay_ms(1000); // ждем 1 сек.
// ---------- вращаем моторы назад 1 сек ----------
forward0_out=1; // установить "1" на линии 1 порта C
forward1_out=0; // установить "0" на линии 2 порта C
reard0_out=1; // установить "1" на линии 3 порта C
reard1_out=0; // установить "0" на линии 4 порта C
// --------------------------------------------------
delay_ms(1000); // ждем 1 сек.
// --------------------------------------------------
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
Сообщение от dexa Посмотреть сообщение
1 Как определить максимальную и минимальную задержи МК исходя из частоты кварца?
для IAR AVR
#include ‹intrinsics.h› //подключить функции заддержек циклов
#define delay_us(temp)(__delay_cycles((temp * fclc)/1000000));/* макрос задержки на "temp" микросекунд. точная задержка при целом значении задающей частоты генератора в МГц (1, 2, 3, 4, ..., 10, 11, ...) */// 571 + 2, 387 + 2
#define delay_ms(temp)(__delay_cycles((temp * fclc)/1000));/* макрос задержки на "temp" миллисекунд. точная задержка при целом значении задающей частоты генератора в кГц (1, 2, 3, 4, ..., 10, 11, ...) */
#define delay_s(temp)(__delay_cycles(temp * fclc));/* макрос задержки на "temp" секунд. точная задержка при целом значении задающей частоты генератора в Гц (1, 2, 3, 4, ..., 10, 11, ...) */

вызов задержек
delay_us(1000); //в микросекундах
delay_ms(1000); //в милисекундах
delay_s(1000); //в секундах

но если могозадачаный проект, задержки организовывать по прерываниям таймера
Вложения:
Тип файла: rar C project.rar (26.0 Кб, 38 просмотров)

Последний раз редактировалось picavr; 07.09.2009 в 13:24.
picavr вне форума  
Непрочитано 07.09.2009, 14:49  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Сообщение от dexa Посмотреть сообщение
А стандартный метод это _delay_ms()?
Да.
Сообщение от dexa Посмотреть сообщение
И почему _delay_ms(250) это 0,25 секунд?
Потому что _delay_ms принимает как параметр величину задержки в миллисекундах. А в одной секунде, как ни странно ровно 1000 миллисекунд. Кстати можно передавать и не целое значение - _delay_ms(1.75) или _delay_ms(0.6
kison вне форума  
Непрочитано 07.09.2009, 15:14  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Сообщение от kison Посмотреть сообщение
А в одной секунде, как ни странно ровно 1000 миллисекунд. (0.6
Школьный курс физики.. приставки к величинам системы СИ...
Мега, Кило, милли, микро, нано, пико...
picavr вне форума  
Непрочитано 07.09.2009, 18:00  
dexa
Прохожий
 
Аватар для dexa
 
Регистрация: 06.09.2009
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dexa на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Спасибо за ответ.
Как я понял функция имеет такой тип:
тип_возвращаемого_значения имя_ф-ии (список_параметров)
вместо тип_возвращаемого_значения просто тип int, char и т.д., или же void если ф-я не возвращает никакого значения.
1) что значит возвращает и не возвращает?
2) список_параметров тоже не совсем ясно. Например,
int primer (int n)
здесь в скобках просто объявление переменной n, что можно было сделать так 2-мя строчками:
int n
int primer ()? Все правильно понял?
3) Но в скобках иногда указано void:
void main(void) - что это значит? В книге написано что если не требуется передавать никакие параметры, то в скобках пишем void, токгда смысл пустыхскобок в чем?
Извините, просто сильно запутался((((
dexa вне форума  
Непрочитано 07.09.2009, 18:18  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Сообщение от dexa Посмотреть сообщение
Но в скобках иногда указано void:
void main(void) - что это значит? В книге написано что если не требуется передавать никакие параметры, то в скобках пишем void, токгда смысл пустых скобок в чем?
А что там непонятного?
Таков синтаксис вызова функции:
OUTPUT PARAMETER FUNKCIA (INPUTS PARAMETERS);

Есл ничего не передаём и не возвращаем то
VOID FUNKCIA (VOID);

но VOID можно заменить на пустое место (опустить как грят математики):
FUNKCIA ();

а вот скобки уже опускать нельзя.. нарушается синтаксис.

Сообщение от dexa Посмотреть сообщение
Спасибо за ответ.
Как я понял функция имеет такой тип:
тип_возвращаемого_значения имя_ф-ии (список_параметров)
вместо тип_возвращаемого_значения просто тип int, char и т.д., или же void если ф-я не возвращает никакого значения.
1) что значит возвращает и не возвращает?
2) список_параметров тоже не совсем ясно. Например,
int primer (int n)
здесь в скобках просто объявление переменной n, что можно было сделать так 2-мя строчками:
int n
int primer ()? Все правильно понял?
3) Но в скобках иногда указано void:
void main(void) - что это значит? В книге написано что если не требуется передавать никакие параметры, то в скобках пишем void, токгда смысл пустыхскобок в чем?
Извините, просто сильно запутался((((
Код:
OUTPUT PARAMETER FUNKCIA (INPUTS PARAMETERS);
OUTPUT PARAMETER = выходной параметр функции, обычно является результатом работы функции, так удобнее записывать чем после обработки функции преверять какую то переменну...

пример:
Код:
TEMP = FUNKCIA ();
удобнее вмеcто такой записи:
Код:
FUNKCIA (); 
TEMP = РЕЗУЛЬТАТ ОБРАБОТКИ ФУНКЦИИ;
INPUTS PARAMETERS - входныЕ параметрЫ. Параметры необходимые для работы функции, так же удобнее передавать непосредственно а не через дополнительные переменные:

пример:
Код:
TEMP = FUNKCIA (1,2,3,4,5);
удобнее вмеcто такой записи:
Код:
TEMP1 = 1;
TEMP2 = 2;
TEMP3 = 3;
TEMP4 = 4;
TEMP5 = 5;
FUNKCIA ();
Разрядность и количество входных параметров, указываются при описании функции.
//тип выходного тип входных параметров
unsigned long FUNKCIA (unsigned int a. unsigned char b. unsigned long c);

Сообщение от dexa Посмотреть сообщение
что значит возвращает и не возвращает?
результат работы функции нужно передавать на ружу из функции или нет...

Последний раз редактировалось picavr; 07.09.2009 в 18:24.
picavr вне форума  
Непрочитано 07.09.2009, 18:42  
dexa
Прохожий
 
Аватар для dexa
 
Регистрация: 06.09.2009
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dexa на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Спасибо, буду читать дальше. Кстати, читаю Шпака - "Программирование на языке C для AVR и PIC микроконтроллеров", или может есть более хорошие книги по С для AVR?
з.ы. пошел искать схему учебного стенда))
dexa вне форума  
Непрочитано 07.09.2009, 20:18  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: как компилировать не поможете?

Сообщение от dexa Посмотреть сообщение
Спасибо, буду читать дальше. Кстати, читаю Шпака - "Программирование на языке C для AVR и PIC микроконтроллеров", или может есть более хорошие книги по С для AVR?
з.ы. пошел искать схему учебного стенда))
Я вот то же с Шпака начал... пока не напоролся на то, что не всё там правильно, тут на форуме послали меня к "Язык C [Керниган Б.В., Ричи Д.М.] " и "Язык Cи Герберт Шилдт"
picavr вне форума  
Сказали "Спасибо" picavr
dexa (08.09.2009)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите компилировать Chinga02 Микроконтроллеры, АЦП, память и т.д 3 20.01.2009 22:22
Как остановить мк? Как сделать паузу? skllks Микроконтроллеры, АЦП, память и т.д 8 27.12.2008 17:27
Как компилировать библиотеки в IAR? Prime Микроконтроллеры, АЦП, память и т.д 5 22.06.2007 14:55
Поможете? Дистанционное управление. gust Автоматика и аппаратура связи 0 18.10.2005 17:24


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.