Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 15:08   #1
Sergeu
Пользователь
 
Аватар для Sergeu
 
Регистрация: 23.08.2008
Сообщений: 60
По умолчанию Создание прошивкаи для МК

Народ помагите у мя есть мк (ATMega 8-16PU) и кусок кода
Цитата:
#include <avr/io.h>
int main(void) // начало основной программы
{

DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы


PORTD = 0xff; // установить "1" на всех выводах порта D,
// включаем подтягивающие резисторы

while (1) { // Бесконечный цикл

// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА

if (!(PIND & (1<<PIND1))) // проверить "0" на линии 1 порта D
{
// ---------- вращаем моторы вперед ----------

PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C

// --------------------------------------------------
}
else
{
// ---------- вращаем моторы назад ----------

PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C

// --------------------------------------------------
}


} // закрывающая скобка бесконечного цикла

} // закрывающая скобка основной программы
но я встовляю этот код в CodeVisionAVR и пытаюсь скомпилировать но он выдаёт мне ошибки но так как я полный 0 в плюсах (я програмираю на DElphi) то не могу там ни чё исправить ((((
если тут есть кто розбираеться в МК то пойжалусто обьясните как создовать прошивку для МК
- Я фармацевт.
- А, значит в аптеке работаете.
- Нет, диск С форматирую.
Sergeu вне форума Ответить с цитированием
Старый 17.05.2009, 22:27   #2
radiohobbyt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 38
По умолчанию

это для WinAVR программка...насколько я понял..можно конечно адаптировать...а вообще лучше на electronix.ru спрашивай=) там люди подобным занимаются
radiohobbyt вне форума Ответить с цитированием
Старый 17.05.2009, 22:43   #3
radiohobbyt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 38
По умолчанию

=) переделал=)


/*********************************** ******************
This program was produced by the
CodeWizardAVR V1.24.4 Evaluation
Automatic Program Generator
© Copyright 1998-2004 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mailffice@hpinfotech.com

Project :
Version :
Date : 17.05.2009
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:


Chip type : ATmega8
Program type : Application
Clock frequency : 16,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*********************************** ******************/

#include <mega8.h>
#define _BV(bit) (1 << (bit))
//#include <avr/io.h>
int main(void) // начало основной программы
{

DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы


PORTD = 0xff; // установить "1" на всех выводах порта D,
// включаем подтягивающие резисторы

while (1) { // Бесконечный цикл

// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА

if (!(PIND & (1<<PIND.1))) // проверить "0" на линии 1 порта D
{
// ---------- вращаем моторы вперед ----------

PORTC |= _BV(PORTC.1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PORTC.2); // установить "0" на линии 2 порта C
PORTC |= _BV(PORTC.3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PORTC.4); // установить "0" на линии 4 порта C

// --------------------------------------------------
}
else
{
// ---------- вращаем моторы назад ----------

PORTC &= ~_BV(PORTC.1); // установить "0" на линии 1 порта C
PORTC |= _BV(PORTC.2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PORTC.3); // установить "0" на линии 3 порта C
PORTC |= _BV(PORTC.4); // установить "1" на линии 4 порта C

// --------------------------------------------------
}


} // закрывающая скобка бесконечного цикла

} // закрывающая скобка основной программы

это просто фишка такая...обозначение портов. другие хедеры у разных программ. обращение к ногам по-разному вроде=)
radiohobbyt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание комплекта макросов для WORD DrManual Фриланс 4 14.02.2009 18:53
Создание апдейтера для приложения Shouldercannon Общие вопросы Delphi 2 25.12.2008 18:18
Создание ботов для CS Marsik Софт 11 20.10.2008 22:41
Создание SetUp для макроса Romuald Microsoft Office Excel 3 06.06.2008 12:23