Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюки PIC. Кто хочет посмеяться? глююююююююююююки! 
:(
    Опции темы
quarz
Дата 8.1.2005, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: нет
Всего: 3



Может быть и стек, причем у 3 пиков одновременно..!
PM MAIL   Вверх
PILOT
Дата 8.1.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



а может за границы страницы вылез...
Я всегда относился к подобным глюкам с самокритикой, и в 99.999% виноват был именно я, либо моя невнимательность, либо незнание, но в любом случае - я.
Так что усердия вам в поиске программного бага.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
quarz
Дата 10.1.2005, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: нет
Всего: 3



Все верно, ошибка была именно в программе. Очень помог пример jimmi, мы инициализировали порты без BANKSEL. Кстати, что это значит? Насколько я помню у пиков такой команды нет. Сейчас прога заработала, но на это ушло 2 ночи. Сейчас будем разбиратся с протоколом передачи данных в комп через последовательный порт. И есть еще один вопрос: даже не знаю задавать его здесь или в новой теме.
Короче, для получения определенного интервала времени - 1 сек мы используем модуль 2-х байтный модуль TMR1 все в том же 74 пике. На С0-С1 повесили часовой кварц (32768Гц) и к таймеру прикрепили прерывание по переполнению. По логике, при частоте импульсов 2^15 Гц 16-разрядный таймер должен переполняться каждые 2 секунды. Но мало того, для получения интервала в 1 сек нам пришлось еще и предделитель к нему поставить 1:2 ! Только так получилось что он сбрасывается примерно каждую секунду. 'Примерно' - если сверять его с часами то он за минуту уходит на 10-15 секунд. Как такое может быть? Ведь часы с этим кварцев работали нормально. Или я считать в двоичной системе разучился. Но 2^15=32768, а именно столько кварц дает импульсов в 1 секунду и от такой частоты 15-разрядный счетчик должен переполняться. Но у нас 16-разрядный,-->он должен сбрасываться в 2 раза реже. Он жн сбрасывается в 2 раза чаще... Что касается программы, ни в один из байтов таймера мы ничего не записываем, только считываем. По переполнению переходим в подпрограмму обработки прерывания и там делаем все что нам нужно.
PM MAIL   Вверх
PILOT
Дата 11.1.2005, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



А вы померить осциллографом частоту кварца можете? (через усилок например)
Может гармонику ловите 4х?

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
jimmi
Дата 11.1.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.9.2004

Репутация: 5
Всего: 5



Да, я тоже с такой ситуацией столкнулся, кварц генерит на своей частоте, посчитал константу для таймера, запустил устройство. Частота импульсов на выходе почти в два раза ниже. Просто подстроил по осциллографу константу таймера и все. Загадка какая-то.
Комманда BANKSEL переключает банки в ПИКе. Регистры лежат в разных банках, и могло такое быть, что ты писал в совершенно другой регистр. В отладчике это можно увидеть.
PM MAIL   Вверх
PILOT
Дата 11.1.2005, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



а я как-то раз столкулся именно с гармониками (правда частоты повыше)... особенно часто это бывает на поделках, где не всегда получается все красиво соединить проводниками.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Kaskad
Дата 13.1.2005, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 24.9.2004

Репутация: нет
Всего: 3



Цитата(quarz @ 10.1.2005, 22:31)
Насколько я помню у пиков такой команды нет.

Нету.
Цитата(quarz @ 10.1.2005, 22:31)
определенного интервала времени - 1 сек мы используем модуль 2-х байтный модуль TMR1 все в том же 74 пике. На С0-С1 повесили часовой кварц (32768Гц) и к таймеру прикрепили прерывание по переполнению. По логике, при частоте импульсов 2^15 Гц 16-разрядный таймер должен переполняться

Ничего не понял smile

У меня один раз так было, сижу смотрю мульты с антимульт.ру и бац экран гаснит, опять появляется изображение, а там куча элементов предыдуших кадров с новыми и всё хаотично движется, какие то звуки(наложение). короче ужас шо было smile


--------------------
Well come to America!
PM MAIL   Вверх
jimmi
Дата 13.1.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.9.2004

Репутация: 5
Всего: 5



Комманда BANKSEL у ПИКа есть, так как транслятор ассемблера не ругается, банки переключаются нормально, устанавливается тот банк памяти, в котором находится регистр, указанный операндом в этой комманде.
Ну я же не сам эту комманду придумал, а нашел в интернете в прошивке реально работающего устройства.
В книге "Микроконтроллеры PIC16X7XX" автор В.А.Ульрих такой комманды действительно нет, но есть примеры с инициализацией портов. Например на странице 55
clrf PORTA
bsf STATUS,RPO ;Явно указываем банк 1
movlw 0xCF
movf TRISA

PM MAIL   Вверх
quarz
Дата 15.1.2005, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: нет
Всего: 3



jimmi то что такой команды нет - только что проверил. В доке с microchip.com где расписывались двоичные коды АЛУ и мнемоника команды, banksel не было. Скорее всего это макрокоманда MPASM'a , который сам подставляет нужный регистр переключая RPx в зависимости от конкретного пика.
PM MAIL   Вверх
rcdimon
Дата 15.1.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: нет
Всего: 2



А мне очень интересно то, что такие команды как BANKSEL не написаны в книге по пикам от микрочипа. И там листинги программ без этого. А у нас без этого не работает. В чем же дело?
PM MAIL ICQ   Вверх
PILOT
Дата 15.1.2005, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



BANKSEL - не команда видимо, а директива.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.