Перейти к содержанию
    

mrKirill

Свой
  • Постов

    316
  • Зарегистрирован

  • Посещение

Весь контент mrKirill


  1. Можно уточнить? А то что-то не совсем понял Вас.
  2. Результат fsize стал правильный. Но оказалось что "затык" то не совсем в том, в чем я предполагал. По логике, если правильно понял описание f_lseek, указатель ставим в конец файла, потом проводим процедуру f_write, то в случае удачного ее исполнения файл должен увеличиться на длину строки. Что же выходит у меня: 1. Ставлю указатель в конец файла (функция возвращает 0, т.е. good) 2. Проверяю на всякий случай fsize и fptr, они равны и имеют корректное значение. 3. Провожу запись строки. 4. Проверяю количество записанных байт, они равны длине строки. 5. Проверяю fsize и fptr, они равны и корректны. 6. Вставляю карточку в ПК и вижу - файл не увеличился и не дописался. Если же создать файл изначально большого размера, а потом внутри него писать, указывая вручную точку начала записи - все пишется как положено. Файл любого размера FatFS создает только в момент создания файла с нуля, но никак не модифицирует размер... Не нашел :)
  3. Результаты вызовов функций - 0, т.е. все в порядке... Ваша последовательность ничем в общем-то особо и не отличается от примеров от Chan'а... Что касательно dataFile.fsize, когда я в строке вручную задаю точку указателя, то у меня все записывается как надо, с указанного места, но мне надо чтобы функция сама устанавливалась в конец файла и дописывала его. После открытия файла вывожу в терминал значение dataFile.fsize и оно нулевое...в итоге указатель постоянно устанавливается в нулевую позицию и строки вместо того чтобы дописываться в файл - затирают друг друга. Изобретать костыль не есть гуд, надо понять почему происходит затык. Функция записи работает. Инициализация работает.
  4. Идет следующая последовательность строк: - Открыл файл, если его нет, то создаю. - Задал указателю точку конца файла. Но вот в чем проблема к строчке №2 значение dataFile.fsize держится в 0 и потому каждая последующая строка всегда начинает записываться с позиции 0, вместо дописывания к концовке файла. Между строками 1 и 2 нужно что-то дополнительно делать или может пауза нужна какая-то?
  5. Честно говоря даже и не подумал насчет этой функции, записи строки, попробую. А насчет конверсии - я пишу латинскими буквами. Что-то странное в этом есть... Пишу следующую строку: Повторяю строку N количество раз и в файле же вижу: Чем большее количество раз повторяю N, тем больше белиберды в файле... Отдельно скажу насчет первого слова "test" это слово я записывал еще в начале опытов с файловой системой, после этого несколько раз форматировал карточку. И теперь при каждом создании файла и записи оно сам по себе проявляется, а нужные слова не пишутся, цифры к слову тоже не пишутся... Все функции работают нормально, возвращают стабильно 0. Толи я в лыжи обут...
  6. Была некоторая пауза...Снова взялся за копание кода. Последовательность f_open(...); f_lseek(...); f_write(...); f_close(...); Заменил на f_open(...); f_lseek(...); f_write(...); f_sync(...); Результат стал получаться, т.е. информация в файл дописывается, но возникла другая проблема: записываемый текст совершенно не то что должно быть. Сконфигурирована кодировка Win1251, а в файле полная абракадабра, которая не подходит ни под одну кодировку. Записываю одно и тоже слово, а абракадабра постоянно разная...
  7. lseek() возвращает стабильно 0. dataFile.fptr = dataFile.fsize Это я сразу стал смотреть как столкнулся с проблемой. Нет, выключена.
  8. Вот собственно Значение fsize вывожу в терминал, оно совпадает с тем что есть внутри файла.
  9. Имеется ситуация, что нужно в файле писать каждый параметр с новой строки... Проделываю следующую последовательность операций: 1. f_open(...) - открыл файл 2. f_lseek(...) - перешел в конец файла 3. f_write(...) - записал новую строку На деле f_lseek получает правильное значение указателя конца файла, но запись строки происходит с нулевого байта файла и тем самым просто затираются старые данные и записываются новые...Что я не учел?
  10. Чисто случайно про FUSE-биты не забыли при программировании чипа? Проблем с внутренним генератором быть не должно. PS. Вечером гляну Ваш архив, пока времени нет.
  11. В том же в Proteus'е есть i2c-тестер, разберитесь с его работой, подключите к линиям и посмотрите какие данные идут и в каком месте "затык" происходит. Ну и если не сложно, приложите архив с исходником и проектом Proteus'а, чтобы разговор более детальный был.
  12. На 3м городить RS485 и действительно нет смысла, можно попробовать RS232. Но все же лучше разобраться с i2c, тем более он разжеван уже вдоль и поперек.
  13. Вам же четко написано в логе Обмозговывайте и исправляйте... Как впрочем и другие ошибки четко прописаны, что не понятно?
  14. Ну так я и говорю: Вот Вам направление - http://electronix.ru/forum/index.php?showforum=24
  15. Смешно смотреть, когда человек жалуется на недостаток времени, но при этом сам ничего не делает. Вот Вы все советы даете, а он продолжает Почему бы тогда не создать в специальном разделе объявление о необходимости разработки? Или тлеет надежда на халяву? PS. В пустую прошли 1 сутки...Bootloader'а так и нет...
  16. Ну раз "флешер" контроллер определяет и прошивает - вроде как он исправен, а будет там Ваша прошивка или чья-то еще - не важно. Между ПК и МК явно стоит что-то уровне-согласующее, типа ххх232, думаю стоит проверить обвязку...
  17. Это догадки? Приборами проверяли? Осциллографом смотрели линию питания? Исходя из манеры написания предложения - даже не пытались экспериментировать, и тем более приборами смотреть, пытаетесь решить проблемы "методом тыка".
  18. Обычно беру 10...15 градусов перегрев...Не имею привычки проектировать на грани, лучше иметь запас. Каждый на свое усмотрение выбирает значение.
  19. Вы путаете "причины" и "следствия"... Проводник нагревается от проходящего по нему тока, чем выше ток, тем больше нагревание. По закону Джоуля-Ленца греется любой проводник, по которому протекает ток...физика школьного курса :) Есть много факторов, которые могут повлиять на допустимую для Вас температуру перегрева проводника - от простого потемнения защитного покрытия (оплавление изоляции), до "перегорания" проводника... "Temperature Rise" - тот же самый "перегрев". Между прочим калькулятор по ссылке дает совершенно тот же результат, что и в Sprint-Layout...только в последнем все немного утрировано, в частности жестко задано "Ambient Temperature = 20°С".
  20. То что это не написано, вовсе ничего не значит...Хотя значит, что пользователь должен это знать, что допустимый ток через проводник определятся не только его сечением, но и допустимым перегревом. Те градусы в программе это перегрев относительно 20°С.
  21. Почему? Наверное потому что речь идет про ELECTRONIX.ru, а у Вас написано ELEXRONIX.ru Не замечаете разницы? PS. Прикрепленную картинку не смотрели чтоли?
  22. Варистор и предохранитель - разные элементы. Называйте вещи своими именами, а то вдруг найдется умник поставить предохранитель вместо варистора...и появится новая тема на форуме "Горят предохранители! Что делать?"
×
×
  • Создать...