роботы робототехника микроконтроллеры


 Страниц (4): « 1 [2] 3 4 »   

> Описание: Напишите)
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



ясно..спасибо большое.
(Добавление)
implict declaration of function _delay_ms(100);......кто знает што это за ошибка?=)почему никак задержку не поставить?
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



beam, строка "#include <util/delay.h>" в коде есть ?
если нету - добавить где нибудь в начале.
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



и каким способом можно проверять не ноль, а еденицу на входе?

с делэем прошло нормально поставил как вы сказали...спасибо)
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



(PINС & (1<<PINС5)) это проверка единицы.
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



Всем день добрый...ну чтож ребята...выручайте снова=)...проблема у меня такая-МК Атмега8,R задействованы 4 пина порта C, и 4 пина порта D...порт B не трогаю....оптопара подключена к порту С к пину PC1,.....к PC5,4,3,2 ,подключены светодиоды.....мне надо чтобы при прерывании луча в оптопаре загорались светодиоды обейх портов......(просто в моем случае горят только на порте D)..нада скофигурировать пин PC5 как вход....,а остальные пины как выходы.....я правильно понимаю?.....если да то помогите сконфигурировать их так.....=)Заранее благодарен.
 
 Top
redcat Post Id



Главнокомандующий


Сообщений всего: 387
Дата рег-ции: Янв. 2009  



Боюсь, что участников форума достало "толдычить" одно и то-же из темы в тему....
beam - научись "портировать" решения для одних МК к другим.... Тут не нужны даже знания в программировании, просто логика и внимательность.
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



ммм,так вы можете показать....или хоть сказать возможно ли это?
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



ОЛЕГ пишет:
Например:
DDRC = 0b11111101; //порт С- выход, но пин1 порта С- вход с оптопары
PORTC = 0b00000000; //установить на всех выходах логический 0

DDRD = 0b11111111; //порт D- целиком выход
PORTD = 0b00000000;//установить на всех выходах логический 0
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



... его знает...у меня по вашему примеру ничего не выходит....светодиоды вобще не горят никак
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Вы их зажигаете плюсом, или минусом?

Выложите Вашу программу, которая сейчас в МК.
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



на светодиоды из Мк идет плюс...а минус беру с напрямую я питания
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Программу.
С оптопары управляющий 0 или 1?
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



Управляющий с оптопары 1
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Где Ваша программа?

За Вас ее писать никто не будет, пока Вас не помучаем. Подмигивающий
 
 Top
beam Post Id



Главнокомандующий


Сообщений всего: 278
Дата рег-ции: Дек. 2009  



я написал программу только для четырех светодиодов порта Д а для остальных порта Ц не знаю как...вот моя программа

CODE:
#include <avr/io.h>
#include <util/delay.h>
int main(void) // начало основной программы
{
DDRD = 0xff;
DDRC = 0x00;
PORTC = 0xff;

while (1) {

if (!(PINC & (1<<PINC1)))
{
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
}
else
{

PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
_delay_ms(0.1);
PORTD |= _BV(PD0);
_delay_ms(0.2);
PORTD &= ~_BV(PD0);
_delay_ms(0.1);
PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
_delay_ms(0.3);
PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
_delay_ms(0.1);
PORTD |= _BV(PD0);
PORTD |= _BV(PD2);
_delay_ms(0.1);

PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD2);

_delay_ms(0.1);

PORTD |= _BV(PD1);
_delay_ms(0.05);
PORTD &= ~_BV(PD1);
_delay_ms(0.2);
// П и Р //
PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
_delay_ms(0.1);
PORTD |= _BV(PD2);
_delay_ms(0.05);
PORTD &= ~_BV(PD2);
_delay_ms(0.05);

PORTD |= _BV(PD1);
_delay_ms(0.05);
PORTD &= ~_BV(PD1);
_delay_ms(0.1);
PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);
PORTD &= ~_BV(PD2);
PORTD &= ~_BV(PD3);
_delay_ms(0.2);
// B//
PORTD |= _BV(PD0);
PORTD |= _BV(PD1);
_delay_ms(0.1);
PORTD &= ~_BV(PD0);
PORTD &= ~_BV(PD1);

_delay_ms(0.05);
PORTD |= _BV(PD2);
PORTD |= _BV(PD3);


_delay_ms(1);

}
}
}


эта программа работает отлично...а вот для порта Ц как сделать...ведь там же и оптопара прицеплена?
 
 Top
Страниц (4): « 1 [2] 3 4 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru