Страница 1 из 1
Помогите составить программу.
Добавлено: Вс мар 25, 2012 15:33:59
XyLigan_xD
Народ,помогите пожалуйста составить программу в Code Vision AVR
Для светодиодов.
Нужно чтобы при нажатии 1 кнопки,загорались 2 светодиода.Когда отпускаешь чтобы тухли
А при нажатие 2 кнопки,загорались следующие 2 светодиода.
У меня так по заданию,что PORT D это выход,а порт B вход, и светодиоды подключение по аноду.
И правильно ли я построил схему?
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 15:54:51
SERJ
XyLigan_xD писал(а):Нужно чтобы при нажатии 1 кнопки,загорались 2 светодиода.
Когда отпускаешь чтобы тухли.
А при нажатие 2 кнопки,загорались следующие 2 светодиода.
Выкиньте МК и соедините так.
Будет очень оригинальное решение и 5-ка Вам обеспечена.

Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 15:59:54
Flasher
преподы вообще всякий бред начали задавать. И некого учить, и некому...
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 16:01:02
XyLigan_xD
SERJ писал(а):XyLigan_xD писал(а):Нужно чтобы при нажатии 1 кнопки,загорались 2 светодиода.
Когда отпускаешь чтобы тухли.
А при нажатие 2 кнопки,загорались следующие 2 светодиода.
Выкиньте МК и соедините так.
Будет очень оригинальное решение и 5-ка Вам обеспечена.

Да мы так тоже предлогали =))
Но просто у нас курсовая начинается,там тоже через МК подключать надо будет всё.
Вот практичку дала))
Чтобы осваивались
Я примерно знаю как,но у меня почему-то не запускается..
Вот и прошу помочь)
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 17:05:41
Mytilus G.
Код: Выделить всё
ser R16
out DDRD, R16
out PORTB, R16
ldi R17, 0b000001
ldi R18, 0b000011
ldi R19, 0b000100
ldi R20, 0b001100
ldi R21, 0b010000
ldi R22, 0b110000
LOOP:
clr R23
in R16, PINB
and R16, R17
breq STEP1
or R23, R18
STEP1:
in R16, PINB
and R16, R19
breq STEP2
or R23, R20
STEP2:
in R16, PINB
and R16, R21
breq STEP3
or R23, R22
STEP3:
out PORTD, R23
rjmp LOOP
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 17:09:59
XyLigan_xD
Так и не понял зачем Вы предыдущее сообщение процитировали?
Считаете, что мы его должны два раза прочитать?
aen
Это в Code Vision Avr?
Это вроде не язык C
просто мы совсем не так всё делали..
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 17:32:57
YS
преподы вообще всякий бред начали задавать.
Да просто это самое элементарное, что вообще можно задать. Видимо, препод уже разочаровался в своих студентах настолько, что дает такие идиотски-простые задания чтобы иметь хоть какую-то надежду на то, что их выполнят.
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 18:01:10
XyLigan_xD
Ну у нас такой преподователь..что ничему не учит толком..
Но требует..а всем лень =/
Если вам это легко,помогите пожалуйста)
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 18:01:38
pyzhman
Да, на CV не похоже.
Re: Помогите составить программу.
Добавлено: Вс мар 25, 2012 19:06:58
XyLigan_xD
Всё,написал программу.
Всё работает.
Если вдруг кому надо,могу выложить
Re: Помогите составить программу.
Добавлено: Пн мар 26, 2012 09:19:07
maXINa
Размести, будет интересно в качестве тренировки.
Re: Помогите составить программу.
Добавлено: Пн мар 26, 2012 12:21:49
XyLigan_xD
while (1)
{
if(PINB.0==1)
{PORTD.0=1; PORTD.1=1;}
else
{PORTD.0=0; PORTD.1=0;}
if(PINB.2==1)
{PORTD.2=1; PORTD.3=1;}
else
{PORTD.2=0; PORTD.3=0;}
if(PINB.4==1) {PORTD.4=1; PORTD.5=1;}
else
{PORTD.4=0; PORTD.5=0;}
};
}
Re: Помогите составить программу.
Добавлено: Пн мар 26, 2012 16:47:37
YS
Я бы написал так:
Код: Выделить всё
while (1)
{
PORTD=(PINB & 0x01) | ((PINB & 0x01) << 1) | (PINB & 0x04) | ((PINB & 0x04) << 1) | (PINB & 0x10) | ((PINB & 0x10) << 1);
}

Короче же.

Ну что за молодежь пошла... Даже элементарное задание по-человечески решить не могут...

Re: Помогите составить программу.
Добавлено: Пн мар 26, 2012 19:48:37
XyLigan_xD
Ну нам никто не объяснял...
А нам еще и курсовую писать по этому..
Только там программа намного сложнее..
Re: Помогите составить программу.
Добавлено: Вт мар 27, 2012 16:27:05
Meteor
еще и курсовую писать по этому..
Только там программа намного сложнее..
В ней будет целых
три светодиода!

Re: Помогите составить программу.
Добавлено: Сб мар 31, 2012 04:07:45
Mytilus G.
YS писал(а):Я бы написал так:
Код: Выделить всё
while (1)
{
PORTD=(PINB & 0x01) | ((PINB & 0x01) << 1) | (PINB & 0x04) | ((PINB & 0x04) << 1) | (PINB & 0x10) | ((PINB & 0x10) << 1);
}

Короче же.

Еще короче:
Re: Помогите составить программу.
Добавлено: Сб мар 31, 2012 16:26:27
YS
Mytilus G., это действительно круто!

Я как-то не подумал...
Re: Помогите составить программу.
Добавлено: Вс апр 01, 2012 15:21:50
Mytilus G.
Я тоже, когда предлагал вариант на асме.
