Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 02.02.2016, 08:17  
vovik_t
Прописка
 
Регистрация: 22.07.2011
Адрес: Севастополь
Сообщений: 127
Сказал спасибо: 7
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
vovik_t на пути к лучшему
По умолчанию Не пойму PIC

Столкнулся с проблемой в PIC16F873A, а конкретнее в TMR1. При тактировании TMR1 внутренней частотой без каких либо прерываний все нормально. При частоте генератора в 4 МГц (такт 1 мкс) за 1 мс проходит 1000 импульсов. А вот если в этот промежуток времени проходит обработка какого либо прерывания, 1000 импульсов не получается.

????????????????????????????????????
Реклама:
vovik_t вне форума  
Непрочитано 02.02.2016, 08:36  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,509
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Не пойму PIC

Либо в прерывании вы случайно останавливаете TMR1. Либо, когда подходит очередь прерывания TMR1 и аппаратно выставляется флаг TMR1IF, МК не готов сразу перейти к этому прерыванию. И даже когда он перейдет, счетчик таймера уже отсчитает некоторое количество импульсов. А потому что скорость работы таймера слишком высокая для тактовой частоты.
Не очень понятно, как вы замеряете эти 1000 импульсов.
Быть может, есть смысл снизить скорость счета таймера?
NewWriter вне форума  
Непрочитано 02.02.2016, 08:56  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Не пойму PIC

Из обработчиков прерываний повыкидывай delay и пр. ненужный там хлам
niXto вне форума  
Непрочитано 02.02.2016, 10:16  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Не пойму PIC

Сообщение от vovik_t Посмотреть сообщение
1000 импульсов не получается.
А можно написать сразу внятно, вместо дурацких вопросительных знаков и дурацких смайликов - а сколько импульсов получается? Больше 1000, меньше 1000, или каждый раз по-разному? Есть какая-то статистика, или сделано всего 1-2 попытки?
Как удается обнаружить, что импульсов не 1000? В каком режиме таймер?
Здесь телепатов нет, чтобы угадывать.
Alex9797 вне форума  
Непрочитано 02.02.2016, 13:03  
vovik_t
Прописка
 
Регистрация: 22.07.2011
Адрес: Севастополь
Сообщений: 127
Сказал спасибо: 7
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
vovik_t на пути к лучшему
По умолчанию Re: Не пойму PIC

Сообщение от NewWriter Посмотреть сообщение
Либо в прерывании вы случайно останавливаете TMR1. Либо, когда подходит очередь прерывания TMR1 и аппаратно выставляется флаг TMR1IF, МК не готов сразу перейти к этому прерыванию. И даже когда он перейдет, счетчик таймера уже отсчитает некоторое количество импульсов. А потому что скорость работы таймера слишком высокая для тактовой частоты.
Не очень понятно, как вы замеряете эти 1000 импульсов.
Быть может, есть смысл снизить скорость счета таймера?
В прерывании TMR1 вообще не рассматривается, прерывания происходят от другой периферии.
vovik_t вне форума  
Непрочитано 02.02.2016, 13:26  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: Не пойму PIC

vovik_t, ваши сообщения выглядят как " Я что-то делаю и получаю непонятный результат. Почему так получается?" Как можно ответить на такой вопрос? Действительно, покажите фрагмент своей программы из которого было бы видно как Вы контролируете интервал в 1 мс и количество импульсов в TMR1. Может быть тогда кто-то подскажет что-нибудь конкретное.
tsb вне форума  
Непрочитано 02.02.2016, 15:28  
vovik_t
Прописка
 
Регистрация: 22.07.2011
Адрес: Севастополь
Сообщений: 127
Сказал спасибо: 7
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
vovik_t на пути к лучшему
По умолчанию Re: Не пойму PIC

Сообщение от tsb Посмотреть сообщение
vovik_t, ваши сообщения выглядят как " Я что-то делаю и получаю непонятный результат. Почему так получается?" Как можно ответить на такой вопрос? Действительно, покажите фрагмент своей программы из которого было бы видно как Вы контролируете интервал в 1 мс и количество импульсов в TMR1. Может быть тогда кто-то подскажет что-нибудь конкретное.
Я упрощу программу до тестовой, проверю еще раз и если результат будет тот же, выложу на форум.
vovik_t вне форума  
Непрочитано 02.02.2016, 16:54  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,509
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Не пойму PIC

Сообщение от vovik_t Посмотреть сообщение
В прерывании TMR1 вообще не рассматривается, прерывания происходят от другой периферии.
ну дак какбы...
Прерывание от какого-то другого модуля происходит в момент, близкий к отсчету 1000 импульсов TMR1, ну и пока МК занят выполнением кода в прерывании, наступает 1000 импульсов, а пока МК из обработки другого прерывания не вернулся, продолжается отсчет сверх 1000 имп., ну и к тому времени, как МК все-таки доберется до места, где проверяется отсчет таймера, он уже успевает насчитать сверх 1000.
Можно временно запретить все прерывания в момент, пока ожидается отсчет 1000 имп, обработка прерываний будет отложена, а после отсчета 1000 имп. разрешить прерывания обратно. Так удастся выдержать точный интервал, ценой откладывания реакции на другие прерывания. Тут уж выбор в том, что более приоритетно - точный интервал или быстрая реакция на другие прерывания.

Последний раз редактировалось NewWriter; 02.02.2016 в 16:56.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
vovik_t (02.02.2016)
Непрочитано 02.02.2016, 17:49  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Не пойму PIC

Если нужен интервал 1мС
Compare mode, trigger special event (CCPxIF bit is set, CCPx pin is unaffected); CCP1 resets TMR1; CCP2 resets TMR1 and starts an A/D conversion (if A/D module is
enabled)
OakRidge вне форума  
Непрочитано 02.02.2016, 18:02  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,509
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Не пойму PIC

Интервалы 1 мс очень хорошо и без излишнего программного вмешательства отсчитываются на TMR2. Напрмер, при тактовой МК 4 МГц значения предделителя 1:4, постделителя 1:1, значение PR2=.249
NewWriter вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC parallel slave port (PSP) или PIC и ISA-8 Tronix286 PIC 13 13.05.2014 13:12
Литература по микроконтроллерам (AVR, PIC, ПЛИС и т.д.). Сборка книг - (256 книг+ 27 CD c примерами из книг) [обновление 2011, PDF, DJVU] yurinform Микроконтроллеры, АЦП, память и т.д 5 05.07.2011 19:00
Странная работа PIC 12F629 и 12F675 aleksandr-zh Микроконтроллеры, АЦП, память и т.д 18 18.02.2011 16:46
Вопрос про PIC 16F876А Serega7777 Микроконтроллеры, АЦП, память и т.д 2 18.12.2007 22:34


Часовой пояс GMT +4, время: 01:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot