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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.09.2009, 13:07  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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, время: 19:27.


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