| Pic Basic pro для начинающих | 
|  | 
| 
 
 
 
 | Alexej79 | Дата: Ср, 22.12.2010, 14:46  |                                                                                                                Сообщение # 541 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 71
 
 
 Замечания: ± На сайте с 16.08.2010
 
 
 Статус: 
 Offline
 
 | Спасибо за ответ. Вот с прерыванием у меня проблема я на стадии изучения как это делается. Если возможно, напиши как это можно сделать? |  
 |  |  |  | 
| 
 
 
 
 | ivan_fd | Дата: Ср, 22.12.2010, 19:14  |                                                                                                                Сообщение # 542 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Специалист
 
  
 Сообщений: 
 
 
 891
 
 
 Замечания: ± На сайте с 12.01.2009
 
 
 Статус: 
 Offline
 
 | Написал бы, но я с мобильного, почитай на форуме есть тема о таймерах и прерываниях. |  
 |  |  |  | 
| 
 
 
 
 | Alexej79 | Дата: Чт, 23.12.2010, 11:13  |                                                                                                                Сообщение # 543 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 71
 
 
 Замечания: ± На сайте с 16.08.2010
 
 
 Статус: 
 Offline
 
 | Спасибо за ответ. Но есть ли ещё ссылка где это описано? Форум конечно же я читал только вот где встречаются сообщения о прерывании там обсуждение почему не работает, а мне интересно что это есть прерывание, когда используется, как применяется, какие операторы в ответе за это??? Конечно же даташит читал, рулезный гугл использовал. После чего оформил вопрос в этой теме для новичков. Помогите познать эту функцию. С уважением Alexej79.
 
 Сообщение отредактировал 
 
 Alexej79 - Чт, 23.12.2010, 11:17
 
  |  
 |  |  |  | 
| 
 
 
 
 | amid- | Дата: Пт, 24.12.2010, 14:15  |                                                                                                                Сообщение # 544 |  
 | ![amid-]()  
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 89
 
 
 Замечания: ± На сайте с 02.12.2010
 
 
 Статус: 
 Offline
 
 | Уважаемые подскажите вот кусочек программы bip_taimer_a:
  portb.1 = 1 'При нажатии * выдаем лог.1на 10 мин pause 2000
 portb.3 = 1
 freqout portb.0,1000,1300 'И сигнал длит.1сек,2раза 1.3кгц
 pause 1000
 portb.3 = 0
 freqout portb.0,1000,1300
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 pause 60000
 portb.1 = 0
 return
 в общем задержка на 10 мин вопрос?
 когда выполняется этот процесс то pic какбы засыпает на 10 минут
 как мне реализовать задержку на этом порте но так чтоб pic продолжал работу остальной программы.
 ???
 freqout portb.0,1000,1300 ' сигнал длит.1сек,1.3кгц при кварце 20кгц, а какая команда должна быть при кварце 4 кгц тоесть freqout portb.0,1000,xxxx .что бы, получить туже частоту какое значение xxxx (если я правельно прикинул то должно быть freqout portb.0,1000,260 правельно аль нет)
 
 Сообщение отредактировал 
 
 amid- - Пт, 24.12.2010, 14:21
 
  |  
 |  |  |  | 
| 
 
 
 
 | mikhail09p | Дата: Пт, 24.12.2010, 16:23  |                                                                                                                Сообщение # 545 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 481
 
 
 Замечания: ± На сайте с 04.05.2010
 
 
 Статус: 
 Offline
 
 | Quote (Alexej79) что это есть прерывание, когда используется, как применяется, какие операторы в ответе за этоПосмотрите программку Программируемый термостат http://picbasic.ru/....-1-0-72 там с помощью прерываний считается время. Разбирайтесь, что не понятно, спрашивайте, сам только вчера понял, как задействовать таймер 1.
 |  
 |  |  |  | 
| 
 
 
 
 | ivan_fd | Дата: Пт, 24.12.2010, 22:34  |                                                                                                                Сообщение # 546 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Специалист
 
  
 Сообщений: 
 
 
 891
 
 
 Замечания: ± На сайте с 12.01.2009
 
 
 Статус: 
 Offline
 
 | Alexej79, Смотрите, сделал, наверно то что Вам нужно. Всех коментариев нету, так шо извиняйте.
  amid-,   Смотрите и Вы, тоже должно подойти. |  
 |  |  |  | 
| 
 
 
 
 | amid- | Дата: Сб, 25.12.2010, 12:04  |                                                                                                                Сообщение # 547 |  
 | ![amid-]()  
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 89
 
 
 Замечания: ± На сайте с 02.12.2010
 
 
 Статус: 
 Offline
 
 | Сп за примеры обрабатываю (сложновато но я стораюсь) ,а можно небольшой пример к примеру кнопка на porta два светика на portb,нажали кнопку, 1 светик загорелся на 10 мин нажали второй раз кнопку ,2 светик загорелся на 5 мин но светик 1 не гаснет а светится положенное ему время третье нажатие кнопки опять устанавливает время свечения 1 светика 10 мин и.т.д  Но вопрос остался ???
 freqout portb.0,1000,1300 ' сигнал длит.1сек,1.3кгц при кварце 20кгц, а какая команда должна быть при кварце 4 кгц тоесть freqout portb.0,1000,xxxx .что бы, получить туже частоту 1,3 кгц какое значение xxxx (если я правельно прикинул то должно быть freqout portb.0,1000,260 правельно аль нет)
  Добавлено (25.12.2010, 12.04.49) ---------------------------------------------
 Да я обратил внемание что все работают в В PROTON+IDE на PicBasic чем он лучше MicroCode Studio аль чем хуже .
 Я учусь в MicroCode Studio стоит ли перейти PROTON+IDE на PicBasic но я вижу разницу вводимых команд програмы
  В PROTON+IDE не вижу команды pause чем ее там заменить ? 
 Сообщение отредактировал 
 
 amid- - Сб, 25.12.2010, 12:40
 
  |  
 |  |  |  | 
| 
 
 
 
 | ivan_fd | Дата: Сб, 25.12.2010, 13:04  |                                                                                                                Сообщение # 548 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Специалист
 
  
 Сообщений: 
 
 
 891
 
 
 Замечания: ± На сайте с 12.01.2009
 
 
 Статус: 
 Offline
 
 | Quote (amid-) Но вопрос остался ???
 А Вы пробовали такую же команду, по идее должно быть так же?    Quote (amid-) Да я обратил внемание что все работают в В PROTON+IDE на PicBasic чем он лучше MicroCode Studio аль чем хуже . Я учусь в MicroCode Studio стоит ли перейти PROTON+IDE на PicBasic но я вижу разницу вводимых команд програмы
Я тоже с начала начинал с PicBasicPro, но когда перешел на Proton......, на много удобнее и мощнее. Хотя те же задачи можно делать и на PicBasicPro? но..
   Quote (amid-) В PROTON+IDE не вижу команды pause чем ее там заменить ?  DelayMS - миллисекунды DelayUS - микросекунды
 |  
 |  |  |  | 
| 
 
 
 
 | Alexej79 | Дата: Сб, 25.12.2010, 15:01  |                                                                                                                Сообщение # 549 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 71
 
 
 Замечания: ± На сайте с 16.08.2010
 
 
 Статус: 
 Offline
 
 | ivan_fd, Спасибо за програмку. Потихоньку пытаюсь разобраться. Только у меня в Протеусе она не зажигает диод. Работала ли она у тебя? |  
 |  |  |  | 
| 
 
 
 
 | ivan_fd | Дата: Сб, 25.12.2010, 15:27  |                                                                                                                Сообщение # 550 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Специалист
 
  
 Сообщений: 
 
 
 891
 
 
 Замечания: ± На сайте с 12.01.2009
 
 
 Статус: 
 Offline
 
 | Конечно зажигает.     Нажмите на изображение---- 
 Сообщение отредактировал 
 
 ivan_fd - Сб, 25.12.2010, 15:27
 
  |  
 |  |  |  | 
| 
 
 
 
 | retas | Дата: Вс, 26.12.2010, 00:45  |                                                                                                                Сообщение # 551 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 445
 
 
 Замечания: ± На сайте с 10.09.2007
 
 
 Статус: 
 Offline
 
 | amid- ! , посмотри сдесь http://picbasic.ru/forum/9-593-1 |  
 |  |  |  | 
| 
 
 
 
 | amid- | Дата: Пн, 27.12.2010, 14:22  |                                                                                                                Сообщение # 552 |  
 | ![amid-]()  
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 89
 
 
 Замечания: ± На сайте с 02.12.2010
 
 
 Статус: 
 Offline
 
 |  Вопрос а где или как задаем время для таймера 1 и таймера 2 какими командами заставляем его запустится на нужном port |  
 |  |  |  | 
| 
 
 
 
 | retas | Дата: Пн, 27.12.2010, 21:12  |                                                                                                                Сообщение # 553 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 445
 
 
 Замечания: ± На сайте с 10.09.2007
 
 
 Статус: 
 Offline
 
 | amid- !  1. Следишь за нажатием Кнопки. 2. Если Кнопка оказалась нажатой, опустошаешь таймер (делаеш его =0).
 3. В прерываниях указываешь постоянно пополнять таймер т.е. его инкрементировать.
 4. Следиш, не сосчитал ли таймер такое количество кликов, которое соответствует нужному тебе времени.
 5. Если в таймере набралось необходимое число, даёш команду зажеч лампу на любом тебе нужном порте.
 Удачи.
 |  
 |  |  |  | 
| 
 
 
 
 | amid- | Дата: Пн, 27.12.2010, 21:51  |                                                                                                                Сообщение # 554 |  
 | ![amid-]()  
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 89
 
 
 Замечания: ± На сайте с 02.12.2010
 
 
 Статус: 
 Offline
 
 | retas  IF t1="10min" then Output1=0 IF t2="5min" then Output2=0
 goto main
  INTERUPT INC t1 : INC t2
  НЕ пойму каким оброзом получить 10 мин .......(тоесть какие цыфры)   и последние две команды разъясните Спасибочки
 
 Сообщение отредактировал 
 
 amid- - Пн, 27.12.2010, 22:04
 
  |  
 |  |  |  | 
| 
 
 
 
 | Alexej79 | Дата: Пн, 27.12.2010, 23:49  |                                                                                                                Сообщение # 555 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Понимаю
 
  
 Сообщений: 
 
 
 71
 
 
 Замечания: ± На сайте с 16.08.2010
 
 
 Статус: 
 Offline
 
 | ivan_fd, Спасибо ещё раз за программу Вроде про прерывания стал слегка догонять. Но в том коде что содержится сдесьQuote (ivan_fd) Прикрепления: Alexej79.zip(59Kb)
 Code  ;      Ðåãèñòð  T1CON
 
 Symbol TMR1ON = T1CON.0     ' Timer1 ON
 Symbol TMR1CS = T1CON.1     ' Timer1 Clock Source Select
 Symbol T1SYNC = T1CON.2     ' Timer1 External Clock Input Synchronization Control
 Symbol T1OSCEN = T1CON.3    ' Timer1 Oscillator Enable Control
 Symbol T1CKPS0 = T1CON.4    ' Timer1 Input Clock Prescale Select bits
 Symbol T1CKPS1 = T1CON.5    ' Timer1 Input Clock Prescale Select bits
 
 ;     INTCON
 Symbol RBIF = INTCON.0 ' RB Port Interrupt Flag
 Symbol INTF = INTCON.1 ' RB0 External Interrupt Flag
 Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag
 Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable
 Symbol INTE = INTCON.4 ' RB0 External Interrupt Enable
 Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable
 Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable
 Symbol GIE = INTCON.7  ' Global Interrupt Enable
 
 ;      PIE1
 Symbol TMR1IE = PIE1.0 ' TMR1 Overflow Interrupt Enable
 Symbol TMR2IE = PIE1.1 ' TMR2 to PR2 Match Interrupt Enable
 Symbol CCP1IE = PIE1.2 ' CCP1 Interrupt Enable
 Symbol TXIE = PIE1.4   ' USART Transmit Interrupt Enable
 Symbol RCIE = PIE1.5   ' USART Receive Interrupt Enable
 Symbol CMIE = PIE1.6   ' Comparator Interrupt Enable
 Symbol EEIE = PIE1.7   ' EE Write Complete Interrupt Enable
 
 Symbol TMR1IF = PIR1.0 ' TMR1 Overflow Interrupt Flag bit
 Symbol TMR2IF = PIR1.1 ' TMR2 to PR2 Match Interrupt Flag
 Symbol CCP1F = PIR1.2  ' CCP1 Interrupt Flag
 Symbol TXIF = PIR1.4   ' USART Transmit Interrupt Flag
 Symbol RCIF = PIR1.5   ' USART Receive Interrupt Flag
 Symbol CMIF = PIR1.6   ' Comparator Interrupt Flag
 Symbol EEIF = PIR1.7   ' EEPROM Write Operation Interrupt Flag
 
Как я понял там сразу настроены все прерывания. Для меня стоит только брать прерывания по порту В то есть
 Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable Разрешение прерывания по изменению сигнала на входах RB7:RB4 PORTB
 Правильно ли я понял? Если так то перейдём к вопросу о таймерах.
   Quote (ivan_fd) Настройте прерывание таймера на 1сек., в прерывании делать инкремент переменной. А потом, если набежит 5 мин. делаем то что надо.Как организовать теперь таймер? Как его настроить что б он отсчитал именно 5 минут?
 Вот сдесь я окончательно запутался мне нужно ещё прерывание по таймеру . Если набежит 5 мин то тогда происходит прерывание.
 Простите конечно за писанину ну у меня в голове такой вот бардак по таймерам и прерываниям может кто и поймёт. Буду рад любой помощи.
 С уважением Alexej79.
 |  
 |  |  |  |