РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

ФОРУМ НА ЭЛВО

РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ
  • БЛОГИ
  • НОВОЕ
  • СХЕМЫ
  • РАЗНОЕ
  • ТЕОРИЯ
  • ТЕЛЕВИДЕО
  • СВЕТОДИОД
  • МЕДТЕХНИКА
  • БЫТТЕХНИКА
  • ИЗМЕРИТЕЛИ
  • СПРАВОЧНИК
  • ТЕХНОЛОГИИ
  • РЕМОНТ СХЕМ
  • МОБИЛЬНИКИ
  • КОМПЬЮТЕРЫ
  • НАЧИНАЮЩИМ
  • ЗАРЯДКИ И АКБ
  • СИГНАЛИЗАЦИИ
  • АУДИОТЕХНИКА
  • АВТОВЕЛОМОТО
  • БЛОКИ ПИТАНИЯ
  • РАДИОПРИЁМНИКИ
  • МЕТАЛЛОИСКАТЕЛИ
  • МИКРОКОНТРОЛЛЕР
  • РАДИОПЕРЕДАТЧИКИ

  • Курс по ускорению работы Мозга на 100%


    • Страница 2 из 2
    • «
    • 1
    • 2
    Архив - только для чтения
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Помогите с кодом на C
    Помогите с кодом на C
    Вс, 05.07.2015, 22:55 | Сообщение # 11        
    adamchuk2012
    аватар
      Постов: 14   ОК 
    ребят. я впервые сел за это дело. пожалуйста помогите разобраться. у меня нет возможности на пике делать. их после осваивать буду. я заплатить готов
    Пн, 06.07.2015, 11:04 | Сообщение # 12        
    msmmmm2
    аватар
      Постов: 166   ОК 
    if (PINC&(1<<PC1))
    {
    выполняется, если на PC1 - "1"
    }

    Да и зачем так сложно, если пины не перебираются - задай условие железно
    if (PC1==0){} или if (PC1!=0){} смотри, что у тебя по логике.

    Помнишь анекдот про еврея, который просил у бога выигрыша в лотерею, а билетик не покупал? Ты выложи задачу так: входы - нога такая-то это датчик ВУ, наличие воды - "1"; выходы - нога такая-то, уровень "1" - вкл. Условие (пример): пока воды нет, нагрев не включать; если НУ = 1, вкл нагрев и контролировать НУ (для аварийного отключения) и ВУ. Если ВУ = 1, откл нагрев, вкл пищалку на 10с, ....

    Если так поставишь задачу, то сам все и сделаешь, да и помогут быстрее, потому что будет понятно, чего хочешь. Это называется "составление математической модели" - 90% работы программиста. Закодить правильно поставленную задачу - легко решаемая задача даже для неопытных.
    Пн, 06.07.2015, 17:30 | Сообщение # 13        
    adamchuk2012
    аватар
      Постов: 14   ОК 
    ага. ну давайте попробуем. PC0- датчик верхнего уровня, PC1- датчик нижнего уровня, PB1- НАГРЕВ, PB2- ЗВУК, PB3- СБРОС ПАРА, PB4- ДОЛИВ ВОДЫ.
    Логика. если PC0=0 и PC1=0 то- нагрев воды( PB1=1, PB2=0, PB3=0, PB4=0)
    PC0=1 и PC1=0 то- нагрев воды( PB1=1, PB2=0, PB3=0, PB4=0)
    PC0=1 и PC1=1 то- отключить нагрев воды -(PB1=0), пописчать- PB2=1 10 сек, сбросить пар PB3=1 минуту, сбрасывать пар и доливать воду PB3=1 PB4=1 пока оба датчика вода заполнит оба датчика PC0=0 и PC1=0, и после опять включить нагрев PB1=1. Вот собственно и всё. и как раз проблема с последним.
    мои циклы глючат когда я задаю им к проверке оба датчика. то есть прекратить лить воду тогда когда и первый второй в воде.

    Добавлено (06.07.2015, 18:30)
    ---------------------------------------------
    забыл добавить. 1 на датчиках- воды нет. 0 на датчиках- вода есть.

    Пн, 06.07.2015, 20:51 | Сообщение # 14        
    msmmmm2
    аватар
      Постов: 166   ОК 
    Попробуй так, писал в текстовом редакторе, не тестил:

    #define F_CPU 1000000
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)
    {
    DDRB = 0xFF;
    PORTB = 0x00;
    DDRC = 0x00;
    PORTC = 0xFF;
    while(1)
    {
    switch (PINC & 3)
    {
    case 0: PORTB = 0b00000010;break; //PB1=1
    case 1: PORTB = 0b00000010;break; //PB1=1
    case 2: PORTB = 0b00000000;break; // неисправность: НУ нет, ВУ - есть, все откл
    case 3:
    {PORTB = 0b00000100 ; // выключаю нагрев, пищу 10 сек PB2=1
    _delay_ms(10000) ; // 10c
    PORTB = 0b00001000; // прекратил пищать включил сброс пара PB3=1
    _delay_ms(60000); // 60c
    PORTB = 0b00011000; // PB3=1 PB4=1
    while ((PINC & 3) != 0){}; // пока оба входа не =0 стоим, тупим
    };
    }
    }
    }
    Пн, 06.07.2015, 23:37 | Сообщение # 15        
    djsanya123
    аватар
      Постов: 1072   Друзья 
    adamchuk2012, нарисуй схемку, напишу код
    Вт, 07.07.2015, 18:29 | Сообщение # 16        
    msmmmm2
    аватар
      Постов: 166   ОК 
    Все, код в сообщении #14 подправил, в протеусе работает.
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Помогите с кодом на C
    • Страница 2 из 2
    • «
    • 1
    • 2
    Поиск:

    Внимание! Форум переехал на Tehnodium.ru



    © 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA