ясно..спасибо большое.
(Добавление)
implict declaration of function _delay_ms(100);......кто знает што это за ошибка?=)почему никак задержку не поставить?
16. beam - 07 Марта, 2010 - 09:41:44 - перейти к сообщению
17. nest - 07 Марта, 2010 - 12:58:34 - перейти к сообщению
beam, строка "#include <util/delay.h>" в коде есть ?
если нету - добавить где нибудь в начале.
если нету - добавить где нибудь в начале.
18. beam - 07 Марта, 2010 - 13:07:15 - перейти к сообщению
и каким способом можно проверять не ноль, а еденицу на входе?
с делэем прошло нормально поставил как вы сказали...спасибо)
с делэем прошло нормально поставил как вы сказали...спасибо)
19. ОЛЕГ - 07 Марта, 2010 - 13:34:27 - перейти к сообщению
(PINС & (1<<PINС5)) это проверка единицы.
20. beam - 08 Марта, 2010 - 12:58:58 - перейти к сообщению
Всем день добрый...ну чтож ребята...выручайте снова=)...проблема у меня такая-МК Атмега8,R задействованы 4 пина порта C, и 4 пина порта D...порт B не трогаю....оптопара подключена к порту С к пину PC1,.....к PC5,4,3,2 ,подключены светодиоды.....мне надо чтобы при прерывании луча в оптопаре загорались светодиоды обейх портов......(просто в моем случае горят только на порте D)..нада скофигурировать пин PC5 как вход....,а остальные пины как выходы.....я правильно понимаю?.....если да то помогите сконфигурировать их так.....=)Заранее благодарен.
21. redcat - 08 Марта, 2010 - 13:11:52 - перейти к сообщению
Боюсь, что участников форума достало "толдычить" одно и то-же из темы в тему....
beam - научись "портировать" решения для одних МК к другим.... Тут не нужны даже знания в программировании, просто логика и внимательность.
beam - научись "портировать" решения для одних МК к другим.... Тут не нужны даже знания в программировании, просто логика и внимательность.
22. beam - 08 Марта, 2010 - 13:28:23 - перейти к сообщению
ммм,так вы можете показать....или хоть сказать возможно ли это?
23. ОЛЕГ - 08 Марта, 2010 - 14:34:19 - перейти к сообщению
ОЛЕГ пишет:
Например:
DDRC = 0b11111101; //порт С- выход, но пин1 порта С- вход с оптопары
PORTC = 0b00000000; //установить на всех выходах логический 0
DDRD = 0b11111111; //порт D- целиком выход
PORTD = 0b00000000;//установить на всех выходах логический 0
DDRC = 0b11111101; //порт С- выход, но пин1 порта С- вход с оптопары
PORTC = 0b00000000; //установить на всех выходах логический 0
DDRD = 0b11111111; //порт D- целиком выход
PORTD = 0b00000000;//установить на всех выходах логический 0
24. beam - 08 Марта, 2010 - 15:01:11 - перейти к сообщению
... его знает...у меня по вашему примеру ничего не выходит....светодиоды вобще не горят никак
25. ОЛЕГ - 08 Марта, 2010 - 15:11:25 - перейти к сообщению
Вы их зажигаете плюсом, или минусом?
Выложите Вашу программу, которая сейчас в МК.
Выложите Вашу программу, которая сейчас в МК.
26. beam - 08 Марта, 2010 - 15:32:02 - перейти к сообщению
на светодиоды из Мк идет плюс...а минус беру с напрямую я питания
27. ОЛЕГ - 08 Марта, 2010 - 15:34:02 - перейти к сообщению
Программу.
С оптопары управляющий 0 или 1?
С оптопары управляющий 0 или 1?
28. beam - 08 Марта, 2010 - 16:31:04 - перейти к сообщению
Управляющий с оптопары 1
29. ОЛЕГ - 08 Марта, 2010 - 17:14:33 - перейти к сообщению
Где Ваша программа?
За Вас ее писать никто не будет, пока Вас не помучаем.
За Вас ее писать никто не будет, пока Вас не помучаем.
30. beam - 08 Марта, 2010 - 17:35:39 - перейти к сообщению
я написал программу только для четырех светодиодов порта Д а для остальных порта Ц не знаю как...вот моя программа
эта программа работает отлично...а вот для порта Ц как сделать...ведь там же и оптопара прицеплена?
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);
}
}
}
#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);
}
}
}
эта программа работает отлично...а вот для порта Ц как сделать...ведь там же и оптопара прицеплена?