| Большие выдержки времени! | 
|  | 
| 
 
 
 
 | Broka | Дата: Чт, 10.12.2009, 21:04  |                                                                                                                Сообщение # 1 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 30.09.2009
 
 
 Статус: 
 Offline
 
 | Недавно скачал универсальную программу для создания задержек времени для PIC, www.picbasic.ru/load/3-1-0-112 как применить её к PicBasicPRO незнаю,может кто подскажет на примере,
 пробовал по всякому,компилятор ругается что неправильный синтаксис.
 Дело в том что мне надо написать программу на 7дней,чтобы в определённое время включалась та или иная функция,(Вообщем цикл у этой программы недельный,через неделю всё обнуляется и пошло всё заново.)
 В принципе я догадываюсь как это сделать,работает таймер,по достижении нужного промежутка времени,
 от таймера происходит прерывание,потом возвращается на то место от куда было всё это вызвано,но вот как это
 сделать в PicBasicPro,ни как не могу понять!
 
 Наладчик КИП и А
 |  
 |  |  |  | 
| 
 
 
 
 | brown | Дата: Чт, 10.12.2009, 22:20  |                                                                                                                Сообщение # 2 |  
 |   
 
 
 
 
  Группа:
  Пользователи
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 331
 
 
 Замечания: ± На сайте с 18.09.2007
 
 
 Статус: 
 Offline
 
 | Цитата Broka Недавно скачал универсальную программу для создания задержек времени для PICДанная программа для ассемблера. В бейсике есть ее простой эквивалент PAUSE и компилятор сгенерит некое подобное в АСМе. Вам это видимо не подходит. Думаю подойдет какая нибудь прога часов, которые неоднократно обсуждались на форуме. Примеры должны быть здесь http://www.picbasic.ru/load/8-1-0-110 Либо вообще использовать часы реального времени типа DS1307.
 
 Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
 |  
 |  |  |  | 
| 
 
 
 
 | terrarus | Дата: Пт, 11.12.2009, 14:05  |                                                                                                                Сообщение # 3 |  
 | ![terrarus]()  
 
 
 
 
  Группа:
  Пользователи
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 451
 
 
 Замечания: ± На сайте с 21.08.2008
 
 
 Статус: 
 Offline
 
 | Могу предложить такой вариант без использования прерываний:  main: For cek = 1 To 10080
 Pause 1000 ' Пауза 1 сек
 GoSub Vkl
 GoSub Vykl
 Next
 GoTo main
  End   Vkl: If x = 1440 Then Led1 = 1 ' Если прошли 1 сутки (24 часа) то включить устройство №1 1440 = 60 сек х 24 часа
 If x = 2880 Then Led2 = 1 ' Если прошло 2 суток то включить устройство №2
 ......
 If x = NN Then LedN = 1 ' Если прошлo N сутки (48 часа) то включить устройство №N NN = 60 cек x N суток
 Return
  Vykl: If x >= 1500 Then Led1 = 0 ' Если прошли 25 часов то выключить устройство №1 1440 = 60 сек х 24 часа
 If x >= 2940 Then Led2 = 0 ' Если прошло 49 часов то выключить устройство №2
 ......
 If x >= NN Then LedN = 0 ' Если прошлo NN cекунд выключить устройство №N
  Return 
 Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
 
 Сообщение отредактировал 
 
 terrarus - Пт, 11.12.2009, 14:58
 
  |  
 |  |  |  | 
| 
 
 
 
 | Broka | Дата: Пт, 11.12.2009, 22:15  |                                                                                                                Сообщение # 4 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 30.09.2009
 
 
 Статус: 
 Offline
 
 | Спасибо большое,буду проводить эксперементы. Обязательно напишу о результатах!   Я так думаю вместо Pause 1000,надо бы поставить 60000,да?
 
 Наладчик КИП и А
 
 Сообщение отредактировал 
 
 Broka - Сб, 12.12.2009, 10:31
 
  |  
 |  |  |  | 
| 
 
 
 
 | terrarus | Дата: Сб, 12.12.2009, 11:42  |                                                                                                                Сообщение # 5 |  
 | ![terrarus]()  
 
 
 
 
  Группа:
  Пользователи
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 451
 
 
 Замечания: ± На сайте с 21.08.2008
 
 
 Статус: 
 Offline
 
 | Да, я ошибся, забыл что в 1 сутках 60сек Х 60 мин Х 24 часа = 86400 сек Но помните что в Рic,BasicPRO максимально поддерживаются только переменные типа WORD (слово) которые не могут быть больше 65535
 , поэтому нужно будет вводить промежуточные переменные, а лучше писать на Протоне дак как Протон поддерживает переменые дипа DWORD (Двойное слово) которые могут оперировать с числами до 2147483647
  Прграмма будет такая же, только оператор Pause 1000 нужно заменить на DelayMs 1000 
 Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
 |  
 |  |  |  | 
| 
 
 
 
 | Broka | Дата: Сб, 12.12.2009, 17:46  |                                                                                                                Сообщение # 6 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 30.09.2009
 
 
 Статус: 
 Offline
 
 | Я вот каждый раз сталкиваюсь с какой - нибудь проблемой при программировании, и вот смотрю в Протоне возможностей намного больше , буду изучать Протон, операторы не очень намного отличаются,а возможностей больше!
   
 Наладчик КИП и А
 |  
 |  |  |  | 
| 
 
 
 
 | terrarus | Дата: Сб, 12.12.2009, 21:57  |                                                                                                                Сообщение # 7 |  
 | ![terrarus]()  
 
 
 
 
  Группа:
  Пользователи
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 451
 
 
 Замечания: ± На сайте с 21.08.2008
 
 
 Статус: 
 Offline
 
 | Да, Протон гораздо мощьнее, чем его предшественники одних только операторов около 200 против 88 операторов PicBasicPRO. Но для 12-разрядных PIC-микроконтроллеров поддерживаются не все операторы. Зато с 16-разрядными работает просто сказка! 
 Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
 
 Сообщение отредактировал 
 
 terrarus - Сб, 12.12.2009, 22:00
 
  |  
 |  |  |  |