МАФ
|
|
ADMIN |
Дата: Сб, 17.12.2011, 05:00 | Сообщение # 16 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Хорошо. Я попробую написать статью про использование модуля захвата.
|
|
|
|
vik1704 |
Дата: Сб, 17.12.2011, 16:21 | Сообщение # 17 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
22
Замечания:
±
На сайте с 05.11.2011
Статус:
Offline
|
большое спасибо Максим! будем ждать с нетерпением. Просьба как напишишь дай знать
Не бойтесь экспериментировать и начинать, что-то новое ведь ковчег построил любитель, а профессионалы - титаник
|
|
|
|
ADMIN |
Дата: Сб, 17.12.2011, 19:28 | Сообщение # 18 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Позвоню лично каждому заинтересованному
|
|
|
|
retas |
Дата: Вс, 18.12.2011, 23:23 | Сообщение # 19 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Оказывается в примерах Протона програ про измерение частоты сидит
' Program to demonstrate the use of the hardware capture ' module to measure the period of a frequency input. ' ' Also shows how two hardware registers can be combined for a 16-bit result ' Input signal should be connected to RC2/CCP1
Include "PROTON_20.INC" ' Configure ports for PROTON board Float_Display_Type = Fast Dim PERIOD As Word ' Word variable that stores the captured value Dim FREQUENCY As Float Symbol CCPR1 = CCPR1L.Word ' Create a 16-bit variable out of CCPRL1 Symbol TIMER1 = TMR1L.Word ' Create a 16-bit variable out of TMR1L Symbol CAPTURE = PIR1.2 ' CCP1 capture flag Symbol OVERFLOW = PIR1.0 ' Timer1 overflow flag
DelayMS 100 ' Wait for PICmicro to stabilise Cls CCP1CON = %00000100 ' Enable the CCP1 capture, falling edge T1CON = %00000001 ' TMR1 prescale=1, and turn it on (1uS per count)
While 1 = 1 While CAPTURE = 0 : Wend ' Wait here until captured PERIOD = CCPR1 ' Store the captured value in period variable If OVERFLOW = 0 Then ' Skip the output if the timer overflowed Print At 1,1, "Period: " , Dec PERIOD , "uS " ' Output Print At 2,1, "Freq: " , Dec2 5000.0 / PERIOD,"KHz " EndIf CAPTURE = 0 ' Clear the capture flag While CAPTURE = 0 : Wend ' Wait for beginning of next period Clear TIMER1 ' Clear Timer1 CAPTURE = 0 ' Clear capture flag OVERFLOW = 0 ' Clear overflow flag Wend ' Do it forever
|
|
|
|
ADMIN |
Дата: Пн, 19.12.2011, 16:12 | Сообщение # 20 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Да, вся проблема в том, что искать никто не хочет. Этот вариант свободно перегоняется в прерывания и получается более точный метод.
|
|
|
|
vik1704 |
Дата: Пн, 19.12.2011, 19:03 | Сообщение # 21 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
22
Замечания:
±
На сайте с 05.11.2011
Статус:
Offline
|
Хорошо искать если есть хотя-бы какие-то азы, фундамент. А если все с нуля постигаешь сам. Пытаешься разобраться в тонкостях - разве это плохо. На мой взгляд и создаются форумы именно для этого. Если-бы я все знал, все понимал в контроллерах я бы и не задавал бы таких ( на взгляд проффи ) глупых вопросов. Но если кто-то увлеченный данной темой и поможет мне что в этом такого. Не просто так же я здесь лажу. Я просто хочу постичь этот мир микроконтроллеров. Вспомните себя Вы тоже были в такой ситуации. И я хочу сказать спасибо и retas, и ADMIN, и terrarus, и всем тем кто не просто разобрался сам, а помогает разобраться другим. На мой взгляд это благородно и достойно похвал. И прошу Вас не судите меня строго я не проффи, я только учусь
Не бойтесь экспериментировать и начинать, что-то новое ведь ковчег построил любитель, а профессионалы - титаник
|
|
|
|
retas |
Дата: Пн, 19.12.2011, 19:16 | Сообщение # 22 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Да, пожалуй на англицком можно почти всё найти, однако сформулировать вопрос, задача не из простых - катит метод тыка и терьпения.
А от чего с прерывами должно более точно получиться нежели с захватом?
|
|
|
|
ADMIN |
Дата: Вт, 20.12.2011, 07:09 | Сообщение # 23 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Потому что захват происходит не в теле программы, где выполняется куча других операторов, а в прерывании, в котором выполняется только захват.
|
|
|
|
vik1704 |
Дата: Вт, 20.12.2011, 16:17 | Сообщение # 24 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
22
Замечания:
±
На сайте с 05.11.2011
Статус:
Offline
|
Quote (retas) Да, пожалуй на англицком можно почти всё найти, однако сформулировать вопрос, задача не из простых - катит метод тыка и терьпения. Все бы хорошо да только в школе у нас учили все французский, а с этим языком не куда не попрешь, даже в ГУГЛе засмеют .
Не бойтесь экспериментировать и начинать, что-то новое ведь ковчег построил любитель, а профессионалы - титаник
|
|
|
|
ADMIN |
Дата: Чт, 12.01.2012, 18:12 | Сообщение # 25 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Статью написал. По поводу того, что лучше обрабатывать захват в прерывании - простой пример в статье - вывод на 7-сегментные индикаторы. Если программа будет в цикле опрашивать флаг CCP1IF, то на индикацию просто не будет времени, так как частота может быть разной и ждать можно долго. В статье как раз описывается метод с прерыванием. Статью можно посмотреть здесь
|
|
|
|
vik1704 |
Дата: Пт, 13.01.2012, 22:26 | Сообщение # 26 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
22
Замечания:
±
На сайте с 05.11.2011
Статус:
Offline
|
Большое спасибо!В теории очень разжеванно и понятно даже для такого чайника как я. Однако в статье совсем не описанны настройки, только страка CP_ALL, DEBUG_OFF, WRT_OFF, CPD_ON, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC и все . Я попробывал это все переложить под MicroCode studio и перегнать в proteus и не фига уменя не получилось. Если кому не в напряг хотябы кратенько распишите че это за CP_ALL, DEBUG_OFF, WRT_OFF, CPD_ON, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC.
Не бойтесь экспериментировать и начинать, что-то новое ведь ковчег построил любитель, а профессионалы - титаник
|
|
|
|
anatol |
Дата: Сб, 14.01.2012, 01:49 | Сообщение # 27 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
WRT_OFF, CPD_ON, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC - надо и описание на контроллер посмотреть иногда - даташит называется. в нем расписаны режимы работы контроллера - конфигурация - так это оттуда. CP_ALL, DEBUG_OFF - режимы и опции компилятора и MP LAB
|
|
|
|
terrarus |
Дата: Сб, 14.01.2012, 10:47 | Сообщение # 28 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
vik1704, на http://terrarus.ucoz.ru/proton_....ig.html описан достаточно подробно оператор Config языка Proton IDE и, естественно, настройки его параметров CP_ALL, DEBUG_OFF, WRT_OFF, CPD_ON, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC , а сами описания этих параметров нужно смотреть в даташите микроконтроллера.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Сб, 14.01.2012, 11:02
|
|
|
|