Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2016, 14:22   #1
Tatarin
Junior Member
 
Регистрация: 11.03.2016
Сообщений: 3
Вес репутации: 0
Tatarin is an unknown quantity at this point
Question Помогите с аналогичной функцией analogWrite

Код:
void setup() {
  //digitalWrite(3, HIGH);
}

void loop() {
  analogWrite(3, 1);
  delay(10000);
}
Светодиод слабо горит и пауза в 10 сек. ему не мешает.
Написал свою функцию analogWrite(aWrite).
Код:
void setup() {
  DDRD |= B00001000;
}
/*
 * pwm коэффициент заполнения
 */
void aWrite(volatile uint8_t *port, uint8_t pin, uint8_t pwm){
  int i = 0;
  while(i < pwm){
    *port = pin;
    i++;
  }
  
  int j = 0;
  while(j < 256 - pwm){
    *port = B00000000;
    j++;
  }
}

void loop() {
  //3 pin ATmega328
  aWrite(&PORTD, B00001000, 1);
  delay(10000);
}
Но светодиод лишь марает раз в 10 секунд.
Как можно заставить его постоянно гореть используя delay()?
Tatarin вне форума   Ответить с цитированием
 


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

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:31. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика