Требуется услуги специалиста на Arduino

Ну, во-первых, работает оно достаточно криво, к сожалению. На уровне существующих библиотек. Но, хер с ним, это решили.
пфф - ну ти ж не хочеш вчитись, щоб пофіксити чи свою написати. Юзай те, що є та як є.

Пиши невелики шматками та закривай файл. Скоріш за все буде все ок, дофіга народу ту лібу юзає та у всії працює.
 
Вроде уже двое суток наработки есть... . (мне надо 100-150 суток логировать)
эээммм... ты хоть логи сделай в UART и сохраняй. Увидишь на каком этапе она упала. Как ты вообще дебажишь? Меняегт "на вид некрасивые" места и ждёшь пока не зависнет?
 
эээммм... ты хоть логи сделай в UART и сохраняй. Увидишь на каком этапе она упала. Как ты вообще дебажишь? Меняегт "на вид некрасивые" места и ждёшь пока не зависнет?

Оно падает при записи на карту... ;-( И вот тут у меня проблема. Либо пытаться что-то сделать танцами и бубном, либо садиться, выкидывать нахрен готовую библиотеку и с нуля ручками разбираться с протоколами и писать код для записи на карту.

В общем, танцы и бубен мне показались более перспективными. ;-) Посмотрим, до чего до камлаю ;-)
 
Карточку менял, питание пробовал улучшить? Написать цикл постоянно что-то пишущий и посмотреть.
 
влезть в запись и мониторить указатель стека
Когда у меня доходит до этого, я понимаю, что это та черта, когда надо остановиться и передать эту задачу специалистам. Напомню, у меня это хобби,не основное занятие. И так глубоко влазить я не готов. Это, по сути, уже выйдет за понятие "проект на Ардуине" ;-)
 
Карточку менял, питание пробовал улучшить? Написать цикл постоянно что-то пишущий и посмотреть.
Ага! ;-) Это и есть мои ритуальные танцы с бубном ;-)

Ни и пока что нашел тупое решение. Просто притормаживаю работу оператором delay()... Как ни странно, оно таки помогает.. . :незнаю:

Для понимания масштаба проблемы, если вставить карту, инициализировать, затем начать с ней работать и в процессе работы ее тупо достать физически - то существующая библиотека этого не замечает...
Т.е. при попытке открыть файл - ошибку не возвращает
При попытке записи - тоже считает что все ок, ошибку не возвращает.
При закрытии файла - тоже не вываливает ошибку...
Вот мне и стало интересно, это только у меня так!? :незнаю:

Т.е. , получается, отловить баг на лету я не могу. Приходится решать вопрос через жопу.
Более того, даже поняв, что есть баг, все что я могу сделать - это ресетить ардуинку программно. Ибо инициализировать карту я могу только раз. И деинициализировать ее - не могу.
Средствами стандартной библиотеки. В общем, цирк...
Или я долбодятел! ;-)
 
если все состояния обрабатывать - флеша avrки может и не хватить
для карты есть сигнал у любого приличного слота - механический card insert
он по идее спасает от множества проблем кроме отвала карты в процессе работы
 
Более того, даже поняв, что есть баг, все что я могу сделать - это ресетить ардуинку программно. Ибо инициализировать карту я могу только раз. И деинициализировать ее - не могу.
Средствами стандартной библиотеки. В общем, цирк...

Больно смотреть на это поедание кактуса уже не первую неделю.
Поставь CodeVision дома, скину тебе проект, 9 лет назад я себе запилил на 128-й меге MP3 плеер с аппаратным кодеком который играл музыку с СД-карты. Это не логи, там потокк данных гнать надо было постоянно. Работало все стабильно и без отвалов.
Я вычищу проект от лишнего, будет шаблон в который допишешь свой код и будет пестня.
Там нет ничего сложного, либа работающая с СД картой встроена в IDE, все API отлично описаны в хелпе. Если что я помогу. Нужно будет только переопределить порты. Могу кстати отдать плату этого плеера, тогда даже код править не надо будет. Дисплей системы 1602 заложен в проект, под него есть разъем, все свободные порты раскиданы на PLS-пины, можешь обвешаться периферией по самое нехочу. Датчики-хуятчики, логгеры-хуеггеры.
Соглашайся, писать на православном Си совсем не страшно, а напротив богоугодно и даже немного кошерно.
 
Ага! ;-) Это и есть мои ритуальные танцы с бубном ;-)

Ни и пока что нашел тупое решение. Просто притормаживаю работу оператором delay()... Как ни странно, оно таки помогает.. . :незнаю:

Для понимания масштаба проблемы, если вставить карту, инициализировать, затем начать с ней работать и в процессе работы ее тупо достать физически - то существующая библиотека этого не замечает...
Т.е. при попытке открыть файл - ошибку не возвращает
При попытке записи - тоже считает что все ок, ошибку не возвращает.
При закрытии файла - тоже не вываливает ошибку...
Вот мне и стало интересно, это только у меня так!? :незнаю:

У тебя на кардхолдере пин пресенса куда заведен вообще?
Что должно сообщать процессору о том, что карты нет? Он в любом случае получит данные, ему же поебать какие.
Также, не плохо бы, проверять наличие файла перед тем, как открыть. Вот там должна получиться ошибка, так как в данных будут только нули.

Т.е. , получается, отловить баг на лету я не могу. Приходится решать вопрос через жопу.
Более того, даже поняв, что есть баг, все что я могу сделать - это ресетить ардуинку программно. Ибо инициализировать карту я могу только раз. И деинициализировать ее - не могу.
Почему?
 
если все состояния обрабатывать - флеша avrки может и не хватить
для карты есть сигнал у любого приличного слота - механический card insert
он по идее спасает от множества проблем кроме отвала карты в процессе работы

От отвала он, как раз, таки, спасает - если проверять его перед операцией с картой. Посреди байта, конечно - бред прочитается, а так - норм.
 
Поставь CodeVision дома
о, годная тема :клас:
я его с радостью использовал для дипломников и быстрого-чего-то-там
и написано все качественно в их либах, если не нужно гнаться за фантастикой шоб какаянить мега32 делала кучу дел одновременно и все успевала
 

На самом деле среда ущербная до ужаса, но наверное единственная в своем роде у которой есть интегрированный Визард, куча годных либ, комплект утилит облегчающих жизнь, типа LCD Vision и которая при этом стоит не как крыло от самолета.
Прекрасная тема для желающих сделать шаг вперед и слезть с иглы Ардуины.
 
На самом деле среда ущербная до ужаса
просто нужно понимать для чего весь сыр-бор
я крайний раз когда этим пользовался - поднял человеку управление станком чуть более чем за день - т.е. написал по готовой плате, на которой слетел МК и утрачена связь с автором программы - именно благодаря визарду и вполне нормальным либам, хоть они все и блокирующие
IDE не пользовался
свой приычный редактор - CV визард/компиль - протеус - и в продакшен
 
- Мне надо выдрать зуб. Подскажите, какую нитку лучше использовать, а то не могу узел завязать нормально...,
- ты лошара! Я тебе пришлю атлас по анатомии, изучай как правильно проводить операции. Я недавно аппендицит удалял под общим наркозом, сейчас запилю тебе протокол операции....
(толпа)- Правильно! Нехрен тут бабкины методы использовать! Вот тебе курс обучения, конспекты! Иди учись! Будешь кардиохирургом....

Вот так, примерно! ;-)


ЗЫ, по сути - спасибо! В принципе, на сегодня вопрос закрыт. Все более-менее стабильно работает. 2 суток данные сняты, записаны, зависаний, слетов нет. Процедура замены карты и прочего отработана. Проект закрыт...

Да, еще раз. Спасибо всем за помощь. По сути, мне не столько даже советы нужны были, как "поговорить". Хотя, при этом, я таки много интересного в беседе для себя узнал.

Кстати, пина присутствия карты именно в моем кардхолдере и не оказалось. И в примерах, либах и прочем - о нем и не вспоминали. Реально, во многом это решает бОльшую часть проблем, которые я решал через задницу (запись и считывания контрольной строки).
 
Вот так, примерно! ;-)
нихуя
для того шоб сделать заебись нужно понять каким образом шоб оно было заебись
это называется декомпозиция, или инженерная интерпретация задачи
она не обязана заканчиваться стандартными решениями, в электронике именно так и есть, это не стройка, где все посчитано много лет тому. варианты растут почти по закону Мура, и с этим нужно справляться.
если какой-то ******* в угоду своему хламу будет настаивать на том, шо все не так сложно, шо вот оно - помигать светодиодом - вот она вся, харекришна - я пошлю его нахуй, просто потому что он меня наебует.
 
Назад
Зверху Знизу