Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 9 из 9
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
Модератор форума: demanik  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Частотомер (скважность и прочее и прочее и прочее)
Частотомер
доцент2 Дата: Вс, 10.06.2018, 11:00  |                                                                                                                Сообщение # 121
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Цитата ivan_fd ()
не нужно наугад что то писать, подбирать.
Я не знаю ассемблер поэтому за основу взял расчет с калькулятора, а потом метод тыка.
Калькулятор расписывает задержку без вставок типа переполнения и т.д.
Что касается описания МК, то несмотря на ограничения считает 78МГц без всяких делителей.
Просто хотелось бы вставить еще задержку на 10сек и учесть переполнения переменной Byte.
Что касается протеуса, в Вашем видео при паузе просматривается файл asm, а у меня с расширением bas. Может поэтому и не получается определить кол-во циклов. Я выставляю метки в начале и в конце задержки. После старта до первой доходит и останавливается, показывая кол-во прошедших циклов, а потом без остановки считает до бесконечности. В итоге сколько циклов приходится на задержку посмотреть не могу.
ЯНДЕКС Дата: 10.06.2018
ivan_fd Дата: Вс, 10.06.2018, 11:17  |                                                                                                                Сообщение # 122
Группа: Модераторы
Ранг:  Специалист
Сообщений: 977
Репутация: 73   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Оно то может и считает, но скорее всего не верно. В даташите описано, что превышение характеристик может привести к неправильной работе.
Если бы я имел генератор, собрал бы в железе и поэкспериментировал. Были в меня на работе точные приборы, генератор и частотомер. Можно было бы сверить, но сгорели в пожаре.

А протеус у меня больше 10МГц не работает.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Вс, 10.06.2018, 11:19
доцент2 Дата: Вс, 10.06.2018, 20:50  |                                                                                                                Сообщение # 123
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

У меня генератора тоже нет. Собственно задумка и была собрать генератор на модуле AD9850 используя простенький МК. Потом решил использовать графический дисплейчик, а он требует больше памяти и тактовой частоты. Поэтому поставил 18f252 с PLL. Остались свободные выводы, подцепил клавиатуру, пищалку и хочу добавить частотомер.
Работу частотомера я проверяю на кварцевых генераторах. У меня их 6 шт с частотами от 10МГц  до 78МГц. Частоту 53МГц определяет нормально. Кстати на модуле AD9850 стоит кварц на 120МГц, вот его частотомер уже не видит.
Вот и хотелось бы использовать задержки от 0,1 до 10сек.

Добавлено (10.06.2018, 20:50)
---------------------------------------------
Посмотрите, данный блок жизнеспособен?
TMR1IF = 0      ' сброс Флага переполнения таймера TMR1
TMR1perep = 0   ' сброс количества переполнений
TMR1perep_1 = 0 ' сброс вспомогательной переменной
; пауза 1000мс, при частоте 40МГц 10 000 000 машинных циклов
Asm
Clrf TMR1L          ; обнуляем регистры...
Clrf TMR1H          ; таймера 1
Bsf T1CON, 0        ; включаем таймер, начало счета
Movlw       .216
Movwf       Reg_1
Movlw       .87
Movwf       Reg_2
Movlw       .51
Movwf       Reg_3

Pause2_1    Btfss    PIR1, 0           ; проверяем бит переполнения таймера
Bra    Paus_1               ; небыло переполнения, идем на Paus

'------ проверка на переполнение ------
Btfss   PIR1,0             ;проверка переполнения
Bra    Paus_1         ;нет, идем на паузу
Movlw   0FFh             ;проверка не равен ли
Bcf Status,2               ;TimerH=0FFh
Subwf   TMR1perep,w
Btfss   Status,2
Incf    TMR1perep_1,F   ;если равен, то увеличиваем TMR1perep_1 на единицу
Clrf    TMR1perep       ;и обнуляем TMR1perep
Bcf PIR1,0              ;сброс флага переполнения
'--------------------------------------
Incf    TMR1perep, F   ; было переполнение, инкремент переменной (переменная размера 1 байт, BYTE!!!!!!!)
Bcf        PIR1, 0        ; сброс флага переполнения
Bra    Nxt3_1             ; далее на паузу

Paus_1        Nop                    ; выравнивание....
Bra    $+2                   ; ... длительности

Nxt3_1      Decfsz      Reg_1
Bra         $-2
Decfsz      Reg_2
Bra         Pause2_1
Decfsz      Reg_3
Bra         $-.10
Bcf T1CON, 0           ; останавливаем таймер
EndAsm

Сообщение отредактировал доцент2 - Вс, 10.06.2018, 20:51
доцент2 Дата: Сб, 16.06.2018, 19:47  |                                                                                                                Сообщение # 124
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Подскажите, как посмотреть сколько циклов занимает вставка Asm.
Не могу поставить контрольные точки.
Прикрепления: 8479600.jpg(89.7 Kb)
ivan_fd Дата: Вс, 17.06.2018, 09:57  |                                                                                                                Сообщение # 125
Группа: Модераторы
Ранг:  Специалист
Сообщений: 977
Репутация: 73   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Я отлаживал в MPASM + proteus. Полностью на ассемблере.

Меня все время преследуют умные мысли...но я быстрее!!!
доцент2 Дата: Вс, 17.06.2018, 14:08  |                                                                                                                Сообщение # 126
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Цитата ivan_fd ()
Я отлаживал в MPASM + proteus. Полностью на ассемблере.
Очередное препятствие к  нобелевской премии.   surprised 

Скачал mpasm, но там нет 18-й серии. sweated
ivan_fd Дата: Вс, 17.06.2018, 14:40  |                                                                                                                Сообщение # 127
Группа: Модераторы
Ранг:  Специалист
Сообщений: 977
Репутация: 73   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

smile  smile  smile 

IDE = MPLAB X IDE v4.15 - MPASM v5.77

Заготовку программы на асме (проект) прилагаю, что бы не мучались.
Прикрепления: asm.zip(43.5 Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
доцент2 Дата: Вс, 17.06.2018, 16:37  |                                                                                                                Сообщение # 128
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Пока темный лес.
MPLAB IDE v8.53 пишет не верный путь к файлу.
могу открыть только Atmel Studio 7.0. Но как его потом в протеус вставить не понимаю.
ivan_fd Дата: Вс, 17.06.2018, 20:56  |                                                                                                                Сообщение # 129
Группа: Модераторы
Ранг:  Специалист
Сообщений: 977
Репутация: 73   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

А при чем здесь атмел??? Я ж вам написал чем открыть и компилировать.

Меня все время преследуют умные мысли...но я быстрее!!!
доцент2 Дата: Пн, 18.06.2018, 11:15  |                                                                                                                Сообщение # 130
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Цитата ivan_fd ()
IDE = MPLAB X IDE v4.15 - MPASM v5.77
Нашел этот MPASM с 18f252.
С помощью MPASM я могу получить .hex файл.
И еще кучку файлов в папке. В протеусе могу прикрепить только этот .hex.
Не могу понять как Вы прикрепили этот файл.
Я с ASM дело не имел, может что-то делаю не так?
Прикрепления: 1441413.jpg(142.7 Kb)

Сообщение отредактировал доцент2 - Пн, 18.06.2018, 11:19
ivan_fd Дата: Пн, 18.06.2018, 15:21  |                                                                                                                Сообщение # 131
Группа: Модераторы
Ранг:  Специалист
Сообщений: 977
Репутация: 73   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Пишу пошагово:
1. Заходим на сайт микрочипа и скачиваем IDE по ссылке MPLAB X.
Тут даже уже v4.20. В них уже есть MPASM!!!
2. Далее смотрим видео о том как крышу на даче меняли. wink



Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Пн, 18.06.2018, 16:25
доцент2 Дата: Пн, 18.06.2018, 16:53  |                                                                                                                Сообщение # 132
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 405
Репутация: 5   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Для примера взял кусок кода из частотомера.
При запуске симуляции первая остановка на первой точке.
Далее продолжаю симуляцию. На второй точке она не останавливается, а продолжается пока не остановишь.
Как получить остановки на всех контрольных точках.
Походу с этим асмом накосячил.

Сообщение отредактировал доцент2 - Пн, 18.06.2018, 20:16
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Частотомер (скважность и прочее и прочее и прочее)
  • Страница 9 из 9
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
Поиск: