Большой Воронежский Форум
Страница 43 из 43
« Первая < 3337383940414243
»Радиолюбитель>PIC контроллеры. Программаторы и первый проект на PIC
petrd 15:27 09.10.2020

Сообщение от ra9cim:
.... но дело в том, что нужны чёткие 3 состояния: разомкнуты оба контакта-включено, замкнут 1-й контакт-выключено, замкнуты оба контакта-включено.

Вас не понять!

Логика:
1 2 | Выход
0 0 | 1 - "замкнуты оба контакта-включено".
0 1 | 0 - "замкнут 1-й контакт-выключено"
1 0 | 0 - такой вариант физически невозможен (по Вашим словам)!
1 1 | 1 - "разомкнуты оба контакта-включено"

Что не так? Это разве не то о чем Вы написали? Других вариантов не существует. [Ответ]
ra9cim 12:13 10.10.2020

Сообщение от petrd:
Что не так? Это разве не то о чем Вы написали?

Не совсем то. У Вас только два состояния: либо замкнут какой-то один из контактов, либо всё остальное. А, как я уже писал, нужны три устойчивых состояния в которые можно потом дописать дополнительный код.
Как определить, в каком состоянии включено: контакты замкнуты-это одно положение устройства; контакты разомкнуты-другое. Замкнутый один контакт-это некое среднее положение. [Ответ]
petrd 13:46 10.10.2020
Понял, тогда как-то так:
Код:
void main(){
     init();
     for(;;){
        if(On1 ^ On2)
            Off(); // 1-е состояние
        else{
          if(On1)
               // 2-е состояние 
           else
               On(); // 3-е состояние
        }
     }
}
[Ответ]
ra9cim 15:56 08.06.2023
Доброго времени суток. Пётр, подскажи, почему в таком виде работает,
Код:
#define On1 button(&gpio,5,10,0)
#define On2 button(&gpio,4,10,0)
#define On() gpio.f1=1
#define Off() gpio.f1=0
char state, trig;

void init(){
 CMCON = 7;
 gpio=0;
 trisio=0x38;
 state=0;
 trig=0;
}

void main(){
 init();
 for (;;) {              //Цикл
  if (On1){        //Дверь закрыта
//   if (trig=0){
    Off();
//   }
  }
  else{            //Дверь открыта
   On();
  }
 }
}
а если раскомментить строки, то не хочет. После включения лампа не горит хоть замыкай кнопку, хоть нет, но если включить с нажатой кнопкой, то загорается и после отпускания кнопки больше не включается. [Ответ]
petrd 16:05 08.06.2023
Здравствуйте!
У Вас ошибка, исправьте
Код:
 if (trig==0)
[Ответ]
AlexVK 13:57 05.12.2023
Добрый день. Так же захотел немного приобщиться к микроконтролерам, скачал microC pro v 7.6,0 установил. Пробовал скомпелировать первый проект, прошло. Из самого начала статьи с мигающими светодиодами. попробовал немного сложнее, с ШИМ , и двумя кнопками. Не идет, ошибки. Ругается на Dutton и Pwm.

Подскажите, где я накосячил..
Изображения
Нажмите на изображение для увеличения
Название: шим.jpg
Просмотров: 6
Размер:	139.4 Кб
ID:	3082340  
[Ответ]
petrd 14:38 05.12.2023
Надо подключить встроенные библиотеки.
View -> галка на Library Manager.
Появится окно Library Manager, в нем поставить галку на PWM. [Ответ]
Страница 43 из 43
« Первая < 3337383940414243
Вверх