Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работают у таймеров TMR0 и TMR1 старшие байты pic18
Не работают у таймеров TMR0 и TMR1 старшие байты pic18
dimitriy-bc Дата: Вт, 27.01.2015, 00:48  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 150
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Всем доброго времени суток. В принципе проблему описал в названии темы. Нужно использовать TMR0 как счетчик. Но отрабатывает только младший байт TMR0L, старший TMR0Н стоит в нолях без изменений. Попробовал подключить TMR1 результат тот же. Пробовал на разных компьютерах с ХР и винда 7. с разными Протонами. Скорее всего где-то что-то не прочел. Хотя как мне кажется старался.
Прикрепления: MD.rar (54.6 Kb)

Сообщение отредактировал dimitriy-bc - Вт, 27.01.2015, 00:50
ЯНДЕКС Дата: 27.01.2015
DAlexV Дата: Вт, 27.01.2015, 09:43  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Регистр T0CON.6 режим 8 (16 бит ) . 1-8бит, 0-16бит.
T0CONbits_T08BIT = 0
Dim wTimer0 As TMR0H Word
Вроде так. И в коде не увидел настройки таймера и прерывание по переполнению. sad  А нужно бы. 
Удачи  wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
anatol Дата: Вт, 27.01.2015, 11:03  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Изменил в высоких прерываниях
....... 
wTimer_0 = wTimer0 
wTimer0 = 0
.......
проще - переменная у вас обнулялась, а потом считывалась.
И дополнительно
при выводе на индикатор десятичного числа нет необходимости ограничивать 5 десятичными знаками, ведь переменная у вас Word (что равно 65535) т.е.  5 знаков. Достаточно просто Dec wTimer_0 вместо

Dec5 wTimer_0

Сообщение отредактировал anatol - Вт, 27.01.2015, 11:05
dimitriy-bc Дата: Вт, 27.01.2015, 12:43  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 150
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

DAlexVanatol, спасибо за ответы.
DAlexV, вроде сделал все как Вы рекомендовали, но сдвигов ноль.
anatol, у меня отказывается работать TMR0 и TMR1  в 16ти битовом варианте для pic18F452. Работает только как 8ми битовый. Запись в него и считывание проходит нормально, а в прерывание улетает после переполнения младшего байта.
Попробовал TMR1 для pic16F874A, все нормально.
Кому не в лом прогоните у себя, может не с тем мучаюсь.
Прикрепления: MDpic18.rar (51.5 Kb)
ivan_fd Дата: Вт, 27.01.2015, 13:16  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

dimitriy-bc, все работает как надо, Вы просто не внимательно читали даташит.

DAlexV Дата: Вт, 27.01.2015, 16:18  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Цитата ivan_fd ()
dimitriy-bc, все работает как надо
+1. Перепроверил сейчас в протеусе. Все правильно, пишет, читается, сбрасывается. Что смущает ????
Если то что в Watch Windows не отображается TMR0H ????. Все верно. Для реального просмотра состояния таймера нужно добавить немного другой регистр. Называется Internal Timer0. Находиться в  PIC18 CPU Internal Model Data.
Прикрепления: MDpic18NewWatch.rar (51.8 Kb)


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
dimitriy-bc Дата: Вт, 27.01.2015, 16:20  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 150
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

ivan_fd, читаю я внимательно. Вот еще бы  одразу понимать, что прочитал, мне бы цены не было в базарный день. Спасибо.
DAlexV, спасибо. Скачал, буду смотреть.

Сообщение отредактировал dimitriy-bc - Вт, 27.01.2015, 16:31
dimitriy-bc Дата: Чт, 19.02.2015, 17:33  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 150
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

И еще раз здравствуйте. Видать опять что-то не дочитал. Не получается вписать значение полученное таймером в переменную. Младший байт вписывается, а старший нет.
Прикрепления: 9811037.rar (51.4 Kb)

Сообщение отредактировал dimitriy-bc - Чт, 19.02.2015, 22:28
dimitriy-bc Дата: Пт, 20.02.2015, 10:27  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 150
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Сегодня утром попробовал вписывать по байтам, вроде заработало. Гляньте на сколько это корректно.
Прикрепления: 0055824.rar (51.6 Kb)
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работают у таймеров TMR0 и TMR1 старшие байты pic18
  • Страница 1 из 1
  • 1
Поиск: