[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » Общие вопросы по Bascom-AVR » Цикл
Цикл
RuberДата: Пятница, 27.12.2013, 22:06 | Сообщение # 1
Группа: Проверенные
Сообщений: 14

Статус: Offline
Мне нужно менять значение например шима. от 0 до 255. как это сделать?



 
maxДата: Пятница, 27.12.2013, 23:02 | Сообщение # 2
Группа: Друзья
Сообщений: 170

Статус: Offline
Этот код будет плавно зажигать и гасить светодиод:
Код
$regfile = "m8def.dat"
$crystal = 8000000

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Dim A As Byte

Do

For A = 0 To 255
Pwm1a = A
Waitms 15Next A

For A = 255 To 0 Step -1
Pwm1a = A
Waitms 15
Next A

Loop

End
Увеличивая значение Pwm1a увеличиваем яркость светодиода и наоборот.


 
RuberДата: Пятница, 27.12.2013, 23:35 | Сообщение # 3
Группа: Проверенные
Сообщений: 14

Статус: Offline
Огромное вам спасибо! :3

 
kip96Дата: Суббота, 28.12.2013, 11:10 | Сообщение # 4
Группа: Свой человек
Сообщений: 166

Статус: Offline
Код
Config Timer0 = Timer , Prescale = 8 , Clear Timer = 0      ' конфигурируем таймер индикации
On Oc0a Dimmer_b                    ' прерывание регулировки яркости индикатора
'On Oc0b Dimmer_c
On Ovf0 Refresh                    ' метка на прерывание индикации
Config Portb.1 = Output : Bri Alias Portb.1   
Enable Interrupts                    ' разрешаем прерывания
'Enable Oc0a                     
Enable Oc0b' по СОВПАДЕНИЮ
Enable Ovf0                    ' и по ПЕРЕПОЛНЕНИЮ
-------
-------
Dimmer_b:
   Reset Bri
   Return

Refresh:
   Set Bri
   Return

На заметку. Если сделат при помощи таймера шим, програмно, то можно подат шим на любую ногу.
забыл:-)  ьььььь




Сообщение отредактировал kip96 - Суббота, 28.12.2013, 11:11
 
RuberДата: Суббота, 28.12.2013, 11:31 | Сообщение # 5
Группа: Проверенные
Сообщений: 14

Статус: Offline
Цитата kip96 ()
На заметку. Если сделат при помощи таймера шим, програмно, то можно подат шим на любую ногу.забыл:-) ьььььь

И вам спасибо! =) Буду экспериментировать)))))


 
RuberДата: Суббота, 28.12.2013, 12:46 | Сообщение # 6
Группа: Проверенные
Сообщений: 14

Статус: Offline
Еще вопрос не по теме. А как кнопкой перелистывать режимы. Ну например надо перелистывать светодиоды штук 6 одной кнопкой, по очереди.



Сообщение отредактировал Ruber - Суббота, 28.12.2013, 12:47
 
RuberДата: Суббота, 28.12.2013, 17:13 | Сообщение # 7
Группа: Проверенные
Сообщений: 14

Статус: Offline
Хотя не нужно=) Буду управлять пультом. Всем спасибо=)

 
RuberДата: Суббота, 28.12.2013, 21:58 | Сообщение # 8
Группа: Проверенные
Сообщений: 14

Статус: Offline
А как нужно чтобы 2 шима выполнялись вместе?

For A = 0 to 255
for n = 0 to 20
pwm1a = a
pwm1b = b
next a
next n

так не выходит( сначало постепенно набирает pwm1a потом pwm1b (




Сообщение отредактировал Ruber - Суббота, 28.12.2013, 22:23
 
maxДата: Суббота, 28.12.2013, 23:22 | Сообщение # 9
Группа: Друзья
Сообщений: 170

Статус: Offline
Достаточно так:
Код
For A = 0 To 255
  Pwm1a = A
  Pwm1b = A
  Waitms 15
  Next A


 
kip96Дата: Воскресенье, 29.12.2013, 20:34 | Сообщение # 10
Группа: Свой человек
Сообщений: 166

Статус: Offline
Ruber, всё зависит от Вашей задачи . Думаю контроллер тоже не понял Вас.
Для чего переменная n? Для чего её "циклить" и какую функцию она вообще несёт? Почему  pwm1b  набирает, если переменная b вообще ни как не изменяется?


 
RuberДата: Воскресенье, 29.12.2013, 21:04 | Сообщение # 11
Группа: Проверенные
Сообщений: 14

Статус: Offline
Цитата kip96 ()
Ruber, всё зависит от Вашей задачи . Думаю контроллер тоже не понял Вас.Для чего переменная n? Для чего её "циклить" и какую функцию она вообще несёт? Почему pwm1b набирает, если переменная b вообще ни как не изменяется?
B и N на клаве рядом. я просто ошибся =)


 
RuberДата: Воскресенье, 29.12.2013, 21:14 | Сообщение # 12
Группа: Проверенные
Сообщений: 14

Статус: Offline
Цитата max ()
Достаточно так:
Но мне нужны разные значения для шимов.


 
Форум » форумы » Общие вопросы по Bascom-AVR » Цикл
Страница 1 из 11
Поиск: