Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.143.31] |
|
Страницы: (18) « Первая ... 3 4 [5] 6 7 ... 17 18 все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Поправка
_ _ \ \ Мы на секунду замыкаем контакт, и отпускаем его (кнопка не должна быть нажата постоянно)?????? |
Сообщ.
#62
,
|
|
|
да, только есснно в этом случае критерием нажатой кнопки будет 0 на соответствующем разряде порта
|
Сообщ.
#63
,
|
|
|
критерием нажатой кнопки будет 0 В смысле критерием, я таких слов незнаю. (малясь недоразвет) |
Сообщ.
#64
,
|
|
|
признаком:)
|
Сообщ.
#65
,
|
|
|
Это для одной кнопки.
main() { TRISA = 4; PORTA = 0x1c; TRISB = 0; PORTB = 0xff; while(PORTA & Bit(1)); while(1) { tick(); switch(PORTB, PORTA) { case 0x1c : PORTB = 0xfc; break; case 0xfc : PORTB = 0xf3; break; case 0xf3 : PORTB = 0xcf; break; case 0xcf : PORTB = 0x3f; break; case 0x3f : PORTA = 0x1c; } } } Для двух кнопок, можно создать две функции и врубать их поочерёдно если кнопка была нажата он будет выполнять эту функцию бесконечно???????? - (так можно реализовать программу)….. |
Сообщ.
#66
,
|
|
|
Цитата Так делать бессмысленно. Это эквивалентно просто switch(PORTA) bizar, 24.01.04, 12:01 switch(PORTB, PORTA) |
Сообщ.
#67
,
|
|
|
А как нужно (PORTB & PORTA)
|
Сообщ.
#68
,
|
|
|
Цитата А скажи словами, чего хочешь получить?bizar, 24.01.04, 12:23 А как нужно (PORTB & PORTA) Я некоторые этапы вашего диалога пропустил. |
Сообщ.
#69
,
|
|
|
Хотим заставить мигать светодиоды на PORTA и PORTB,
чтобы они мигали при нажатии кнопки. Добавлено в : Нужно чтобы два светодиода первый RB второй на RA загорались одновременно. |
Сообщ.
#70
,
|
|
|
работа над ошибками:
Цитата main() { TRISA = 3; // заменяем на TRISA = 3; ты же опрашиваешь кнопку на RA1, т е его и настраиваешь на вход PORTA = 0x1c; TRISB = 0; PORTB = 0xff; while(PORTA & Bit(1)); while(1) { tick(); if (PORTA & Bit(2)) PORTA &= ~Bit(2); else POTRA |= Bit(2); if (PORTB & Bit(1)) PORTB &= ~Bit(1); else POTRB |= Bit(1); } } |
Сообщ.
#71
,
|
|
|
{ tick(); if (PORTA & Bit(2)) PORTA &= ~Bit(2); else POTRA |= Bit(2); if (PORTB & Bit(1)) PORTB &= ~Bit(1); else POTRB |= Bit(1); } Объясни принцип работы этого кусочка (или натолкни на него). |
Сообщ.
#72
,
|
|
|
Цитата { tick(); //------------------------------------------------ if (PORTA & Bit(2)) PORTA &= ~Bit(2); else POTRA |= Bit(2); // дословно: // если 2-й бит порта PORTB установлен, сбрасываем его // иначе устанавливаем его //------------------------------------------------ if (PORTB & Bit(1)) PORTB &= ~Bit(1); else POTRB |= Bit(1); // тоже самое про первый бит порта PORTA } |
Сообщ.
#73
,
|
|
|
Проще написать PORTB ^= Bit(1);
main() { TRISA = 3; // заменяем на TRISA = 3; ты же опрашиваешь кнопку на RA1, т е его и настраиваешь на вход PORTA = 0x1c; TRISB = 0; PORTB = 0xff; while(PORTA & Bit(1)); while(1) { tick(); PORTA ^= Bit(2); // инвертируем бит PORTB ^= Bit(1); // инвертируем бит } } |
Сообщ.
#74
,
|
|
|
2trainer
да, действительно, а я то бошку в свое время ломал, ка кэто одной командой сделать:) |
Сообщ.
#75
,
|
|
|
main()
{ TRISA = 3; // RA1 настраиваем на вход TRISA = 4; // RA2 настраиваем на вход TRISA = 8; // RA3 настраиваем на вход PORTA = 0x1c; TRISB = 0; PORTB = 0xff; while(PORTA & Bit(1)); while(1) { tick(); ???????????????????? tick2(); ?????????????????????? tick3(); ??????????????????????? PORTA ^= Bit(2); // инвертируем бит PORTB ^= Bit(1); // инвертируем бит ?????????? ?????????? } } Чёта я не понял как для нескольких кнопок делать. А так в общем то potor и trainer спасибо за ваше терпение. |