Показано с 1 по 10 из 30

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #26
    Местный
    Регистрация
    20.06.2011
    Возраст
    41
    Сообщений
    170
    Вес репутации
    212

    По умолчанию Re: RGB светодиод и скорость авто

    Помогите разобраться со скетчом...
    Вот пример:
    PHP код:
    /*  CarPC
    */
    #include <Keypad.h>

    const byte ROWS 4// Four rows
    const byte COLS 4// Three columns
    char keys[ROWS][COLS] = {
      {
    '1','2','3','A'},
      {
    '4','5','6','B'},
      {
    '7','8','9','C'},
      {
    '*','0','#','D'}
    };
    byte rowPins[ROWS] = { 234};
    byte colPins[COLS] = { 678}; 

    Keypad keypad KeypadmakeKeymap(keys), rowPinscolPinsROWSCOLS );

    int Stop=0;

    void setup()
    {
      
    pinMode(10OUTPUT);
      
    pinMode(11OUTPUT);
      
    pinMode(12OUTPUT);
      
    digitalWrite(13HIGH);
      
    keypad.addEventListener(keypadEvent); //add an event listener for this keypad
    }

    void loop()
    {
      
    char key keypad.getKey();
      
    digitalWrite(11HIGH);
      
    delay(300);
      
    digitalWrite(11LOW);
      
    delay(300);
    }

    //take care of some special events
    void keypadEvent(KeypadEvent key){
      switch (
    keypad.getState()){
        case 
    RELEASED:
          switch (
    key){
            case 
    '*'
              
    digitalWrite(13,!digitalRead(13));
            break;
            case 
    '1'
              
    digitalWrite(10,!digitalRead(10));
            break;
            case 
    '2'
              
    strobe();
            break;
            case 
    'D'
              
    Stop=1;
            break;
          }
        break;
      }
    }

    void strobe()
    {
      do
      {
        for (
    int i=03i++) {
          
    digitalWrite(12HIGH);
          
    delay(70);
          
    digitalWrite(12LOW);
          
    delay(70);
          
    char key keypad.getKey();
        }
        for (
    int i=03i++) {
          
    digitalWrite(10HIGH);
          
    delay(70);
          
    digitalWrite(10LOW);
          
    delay(70);
          
    char key keypad.getKey();
        }
      } while (
    Stop != 1);
      
    Stop=0;


    Проблемы 2-е.

    1. Когда выполняется главная программа, в момент задержки (delay(300)) соответственно не работает кейпад, т.э. не реагируют клавиши... Но как я понял они должны реагировать на событие (прерывание)? Как это побороть, чтобы в любой момент регистрировалось нажатие клавиши?

    2. Реально ли сделать так, чтобы выполнялось сразу две подпрограммы, например, как в этом скетче, чтобы когда вызывается функция строб, основная продолжала работать. т.э. чтобы выводы 10 и 12 перемиговались + с основной перемигивался 11?
    Последний раз редактировалось Chip; 12.09.2011 в 12:14.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •