Уменьшение размера кода.

Тема в разделе "Arduino & Shields", создана пользователем pasha08, 24 ноя 2013.

  1. pasha08

    pasha08 Нерд

    Уж помогите, дорогие знатоки. Пытаюсь впихнуть код для маленькой пианино-образной фиговинки в attiny13. Надо максимально уменьшить размер.
    Код (Text):
    #define PZ 0
    #define N1 1
    #define N2 2
    #define N3 3
    #define N4 4

    void setup()
    {
      pinMode(PZ, OUTPUT);
      pinMode(N1, INPUT);
      pinMode(N2, INPUT);
      pinMode(N3, INPUT);
      pinMode(N4, INPUT);
    }

    void loop()
    {
      if(digitalRead(N1) == HIGH)
      {
        noTone(PZ);
        tone(PZ, 262);
      }
      else if(digitalRead(N2) == HIGH)
      {
        noTone(PZ);
        tone(PZ, 294);
      }
      else if(digitalRead(N3) == HIGH)
      {
        noTone(PZ);
        tone(PZ, 330);
      }
      else if(digitalRead(N4) == HIGH)
      {
        noTone(PZ);
        tone(PZ, 349);
      }
      else
      {
        noTone(PZ);
      }
    }
     
  2. Unixon

    Unixon Оракул Модератор

    Выкидывайте Wiring, работайте напрямую с регистрами контроллера.
     
  3. pasha08

    pasha08 Нерд

    Я в этих регистрах разбираюсь не больше, чем в квантовой механике, помогите уж, пожалуйста.
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Почитайте даташит, посмотрите исходники тех функций, которыми сейчас пользуетесь.
    А еще, если имеется программатор и умение им пользоваться, можно стереть загрузчик и поиметь за счет этого дополнительную память.