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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
PIC18F2520 отсчет времени
Володимир Дата: Вт, 29.05.2012, 17:18  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Хочу сделать на PIC18F2520 самописец, который непрерывно будет через "компорт" опрашивать блок упправления двигатетем и принятые данные записывать в карту памяти ММС. Но хотелось бы, чтобы с данными записывались и временные метки, тоесть, вместе с ответом от блока управления, писать в карту памяти и время прошедшее от начала записи лога. Как посчитать это время, чтобы не мешать ни обмену с блоком управления двигателя, ни процесу записи на карту памяти?
Сообщение отредактировал Володимир - Вт, 29.05.2012, 17:19
ЯНДЕКС Дата: 29.05.2012
ADMIN Дата: Вт, 29.05.2012, 19:09  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Какой смысл работать с компортом, если на борту контроллера есть USB? Для отсчета времени используй один таймер, для других задач - другой. В данном случае тебе поможет не протон. Здесь уместнее всего использовать Swordfish. Обращайся к DAlexV. Для 18 пиков - самый наилучший вариант, ИМХО
mikhail09p Дата: Вт, 29.05.2012, 23:12  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

ADMIN, на Протоне такое сделать нереально? Давно смотрю на USB, но пока не знаю, с чего начать. Swordfish не знаю...
ivan_fd Дата: Вт, 29.05.2012, 23:50  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Почему не реально, очень даже реально.
А SwordFish - а ломаного, есть только одна версия, и немного сырая.
Последние стабильные версии почему то не ломают.
ADMIN Дата: Ср, 30.05.2012, 02:14  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

На протоне, думаю, вполне реально. Просто на рыбе легче организовать что-то типа многозадачности. С теми же самыми таймерами - проще простого.

ps: тоже написал... biggrin Ему USB не нужен, у него блок общается по RS232 судя по всему
DAlexV Дата: Вт, 12.06.2012, 14:12  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Прошу прощения, хроническая нехватка времени. Тему видел, а отписаться, увы .... Что же касаемо вопроса. Да, Рыба это наверное единственный компилятор из Барсиков поддерживающий работу с файловой системой(если не прав, поправте). Но данная библиотека очень прожорлива в смысле памяти.
Quote (ADMIN)
Просто на рыбе легче организовать что-то типа многозадачности.
Многозадачность можно реализовать на любом проце и барсике, все зависит от структуры программы.
Quote (Володимир)
который непрерывно будет через "компорт" опрашивать блок упправления двигатетем и принятые данные записывать в карту памяти ММС. Но хотелось бы, чтобы с данными записывались и временные метки, тоесть, вместе с ответом от блока управления, писать в карту памяти и время прошедшее от начала записи лога. Как посчитать это время, чтобы не мешать ни обмену с блоком управления двигателя, ни процесу записи на карту памяти?

1. Внешние часы. Перед началом обмена сохраняем время в памяти и начинаем обмен. по завершении обмена снова считываем время и из него вычитаем предыдущее.
2. таймер (в зависимости от точности которая требуется) стартуем перед обменом и считываем после окончания. Главное что бы либо не было переполнения(по переполнению можно будет судить об обрыве связи например) или при переполнении прибавит 1 к счетчику переполнений таймера и быстро выйти из прерывания дабы не помешать обмену. При завершении обмена стопорнуть таймер и высчитать время обмена.

Запись на MMC производить между обменом с блок управления, то же касаемо и обменом с UART.
Quote (ivan_fd)
А SwordFish - а ломаного, есть только одна версия, и немного сырая. Последние стабильные версии почему то не ломают.

Ломаной версией пользуюсь на работе(неохота ключ с собой постоянно таскать). Работает стабильно и без глюков. А последнии версии глючат по страшному(и обновлять их пока не собираются angry ) Вот видимо по этому и не ломают.
Удачи wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
rvstar Дата: Вт, 12.06.2012, 15:51  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

А почему нельзя записывать на 24c512? 64K мало?
  • Страница 1 из 1
  • 1
Поиск: