Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » Помогите разобраться с PWM.
Помогите разобраться с PWM.
Broka Дата: Пн, 02.11.2009, 23:03  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Вообщем задумал я сделать в подьезде автоматическое включение света.
Собрал на столе схему ,вроде как работает!
Надумал сделать плавное гашение света,после того как пикнет 2 раза beeper,
Вот в принципе сама программа:
Приёмник на 38KHz стоит параллельно кнопке,Передатчик на 38KHz стоит отдельно,просто не стал заморачиватся
тянуть провода. (Подскажите пожалуйста в чём моя ошибка?)
Файл Протеуса я тоже на всякий случай прикрепил.
Code

'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 01.11.2009 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEFINE _OSC4_ _BUTTON_PAUSE 20
OPTION_REG.7 = 0
input PORTB.0
output PORTA.0
output PORTA.1
output PORTA.2
output PORTA.3
KN VAR PORTB.0
SV VAR PORTA.0
LED VAR PORTA.1
PRD VAR PORTA.2
SOU VAR PORTA.3
INTCON.4 = 1
PAUSE 100
main:
enable
on interrupt goto int1
SV = 0
LED = 1
pause 50
goto main
DISABLE
int1:
SV = 1
LED = 0
pause 60000:freqout sou,300,800:pause 200:freqout sou,300,800
sou = 0
pause 6000
sv = 0
INTCON.1 = 0
resume

Но,как только я в конце ставлю вот эти строчки,цикл сбивается,(В чём дело то?)
ставлю после PAUSE 6000
j var byte
for j = 255 to 0 step -2
pwm sv,j,24
next j
INTCON.1 = 0
resume
Прикрепления: WinRAR.rar(38Kb)


Наладчик КИП и А
ЯНДЕКС Дата: 02.11.2009
ADMIN Дата: Вт, 03.11.2009, 14:56  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1109
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Объявлять переменные нужно в начале программы!

Code

DEFINE _OSC4_ _BUTTON_PAUSE 20    
OPTION_REG.7 = 0    
input PORTB.0    
output PORTA.0    
output PORTA.1    
output PORTA.2    
output PORTA.3    
KN VAR PORTB.0    
SV VAR PORTA.0    
LED VAR PORTA.1    
PRD VAR PORTA.2    
SOU VAR PORTA.3    
j var byte '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
INTCON.4 = 1    
PAUSE 100    
main:    
enable    
on interrupt goto int1    
SV = 0    
LED = 1    
pause 50    
goto main    
DISABLE    
int1:    
SV = 1    
LED = 0    
pause 60000:freqout sou,300,800:pause 200:freqout sou,300,800    
sou = 0    
pause 6000    
sv = 0    
for j = 255 to 0 step -2    
pwm sv,j,24    
next j    
INTCON.1 = 0    
resume
Broka Дата: Вт, 03.11.2009, 18:03  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Блин,точно,я же читал про это! С головы вылетело sad
Спасибо большое за разьяснение,если честно я об этом знал,да что то не сделал!
СПАСИБО! smile


Наладчик КИП и А
Форум Picbasic.ru » Программирование МК » PicBasicPro » Помогите разобраться с PWM.
Страница 1 из 11
Поиск: