Программирование

Вопросы по программированию Arduino.

Analog Port, PCINT, Interrupt

atmega 328P, "port C" сконигурирован как аналоговый вход

конкретно интересует PC3, на нем аналоговый датчик (выдает разные уровни напряжения)

вопрос:

изменение значения на входе PC3 - cформирует прерывание PCINT1 или нет?

или прерывание формируется только цифровым режимом "port C"?

генерация трех синусоид с помощью шим

стоит задача сгенерировать синусоиду с частотой 400Гц и три фазы сдвинутые на 120 градусов. пытался разобраться в этом вопросе, понял что нужен phase correct pwm/ Не могу разобраться в аппаратных таймерах что есть в 328. проблема и в том что над этими синусоидами еще будут проводиться преобразования. ткните носом где читать? нашел скетч http://www.radioman-portal.ru/pages/1747/ там описана синусоида, но что изменить для тактирования ее на частоту 400. и еще вопрос, ведь это тактирование частоты шима а не периода синусоиды? т.е умножать на 256?

Передача пакета данных

Добрый день

Поскажите как грамотно сфрмровать пакет данных на передатчике???

Есть следующие условия:

- тип датчика << 1 - DS18B20; 2 - DS1990; 3 - DHT; и т.д.        

- порядковый номер датчика << числовое значение от 0 до 9999

- значение датчика << числовое значение от -9999 до 9999

- разделитель << _

Пакет формата :

3-0-23.2_2-0-4

Проблемка с USART

Попробовал адаптировать код небезызвесного DI HALT к своей меге 2560, но не сложилось. Помогите найти ошибку.

I2C на любых портах. Как это сделать?

Доброго. Вопрос. В стандартной библиотеки Wire по i2c можно передавать только через ноги контроллера 5 и 4 анологовых входов UNO. А как можно использовать другие ноги? Например у меня все аналоговые входы заняты. Например в codeVision вообще пох какие ноги. Прописал в инициализаторе и всё, а в Arduino ide не получается так. Ноги там вообще не задаются.

Не правильная работа скетча. Помогите разобраться в чем причина.

  int paper = 13;
  int rele = 8;
  int konz = 7;
  int diod = 12;
  boolean konzevik = LOW;
  volatile int s=0;
  volatile int c=0;
  int x;
  volatile boolean service = false;
  
  
  void setup()
  {
    pinMode (diod, OUTPUT);
    pinMode (paper, OUTPUT);

Есть ли goto в arduino ide?

Если есть, то как им пользоваться?

Много условий а результат 0.

Вроде и блок схему нарисовал и цепочку всю построил, а программа работать не хочет.

Смысл какой:

Включили в ванной свет. Если свет горит больше 1 минуты, необходимо приготовиться.

Приготовились. Ждем когда свет выключится. Свет погас и включаем вытяжной вентилятор на интервал (задан заранее пользователем). Ждем интервал. Если время вышло и влажность ниже аварии (задается заранее пользователем) выключаем вентилятор.

А вот и код

проблема с компиляцией

Приветствую всех. не думал, что буду регистрироваться тут, но у меня возникла непонятная аномалия. Программировал я значит ардуину про мини, лепил к ней ад9850. среда разработки: Arduino 1.0.5.

в начале ввод частоты по юарту, а потом еще решил добавить энкодер. немного попарился и всё получилось. крутишь - частота меняется. решил немного изменить программу и вдруг начались ошибки компиляции. вернул все взад до того момента когда работало, но оно увы, не компилится.

значит текст моей программы таков: